Skip to content

Commit

Permalink
Merge tag '1.2259'
Browse files Browse the repository at this point in the history
  • Loading branch information
niks255 committed Jan 17, 2025
2 parents 018adf5 + f5356b1 commit 6c7c4e6
Show file tree
Hide file tree
Showing 508 changed files with 4,592 additions and 2,077 deletions.
1 change: 1 addition & 0 deletions ATTRIBUTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,4 @@ FairEmail uses parts or all of:
* [commonmark-java](https://github.com/commonmark/commonmark-java). Copyright (c) 2015, Atlassian Pty Ltd. All rights reserved. [BSD-2-Clause license](https://github.com/commonmark/commonmark-java/blob/main/LICENSE.txt).
* [flexmark-java](https://github.com/vsch/flexmark-java). Copyright (c) 2016-2018, Vladimir Schneider. All rights reserved. [BSD-2-Clause license](https://github.com/vsch/flexmark-java/blob/master/LICENSE.txt).
* [EvalEx](https://github.com/ezylang/EvalEx). Copyright 2012-2022 Udo Klimaschewski. [Apache License 2.0](https://github.com/ezylang/EvalEx/blob/main/LICENSE).
* [Android Image Cropper](https://github.com/CanHub/Android-Image-Cropper). Copyright 2016, Arthur Teplitzki, 2013, Edmodo, Inc. [Apache License 2.0](https://github.com/CanHub/Android-Image-Cropper/blob/main/LICENSE.txt).
47 changes: 47 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

### Notices

Happy new Year 🎆

Google requires FairEmail to undergo an annual [CASA](https://appdefensealliance.dev/casa) security audit,
which must be conducted by an authorized assessor (this year [TAC Security](https://casa.tacsecurity.com/site/home)).
Besides being time-consuming, this is no longer free as of this year.
Expand All @@ -30,6 +32,51 @@ For support you can use [the contact form](https://contact.faircode.eu/?product=

### [Barsboldia](https://en.wikipedia.org/wiki/Barsboldia)

### 1.2259 2025-01-16

* Added resize to basic image editor
* Added dialog box for message editor AI actions
* Added loop sound option to play sound rule actions
* Updated build tools
* Small improvements and minor bug fixes
* Updated [AndroidX](https://developer.android.com/jetpack/androidx/versions/all-channel)
* Updated [Public Suffix List](https://github.com/publicsuffix/list)
* Updated [translations](https://crowdin.com/project/open-source-email)

### 1.2258 2025-01-08 *

* Fixed S/MIME decrypt in some cases
* Small improvements and minor bug fixes
* Updated [translations](https://crowdin.com/project/open-source-email)

### 1.2257 2025-01-07

* Added sort on sender name (Android 14+ only)
* Added basic image editor (slowly tap twice on an inserted image in the message editor)
* Small improvements and minor bug fixes
* Updated [translations](https://crowdin.com/project/open-source-email)

### 1.2256 2025-01-01 *

* Happy New Year
* Fixed force light of reformatted message view
* Small improvements and minor bug fixes
* Updated [translations](https://crowdin.com/project/open-source-email)

### 1.2254 2024-12-31

* Added experimental force light for reformatted message view
* Updated libraries, including [Jsoup](https://jsoup.org/news/) and [BouncyCastle](https://www.bouncycastle.org/news/)
* Small improvements and minor bug fixes
* Updated [translations](https://crowdin.com/project/open-source-email)

### 1.2253 2024-12-23 *

* Fixed showing S/MIME digest algorithm
* Added option to select default font size for sending
* Small improvements and minor bug fixes
* Updated [translations](https://crowdin.com/project/open-source-email)

### 1.2252 2024-12-18

* Fixed in-app changelog
Expand Down
44 changes: 34 additions & 10 deletions FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,8 @@ Related questions:
* Language detection [is not working anymore](https://issuetracker.google.com/issues/173337263) on Pixel devices with (upgraded to?) Android 11
* A [bug in OpenKeychain](https://github.com/open-keychain/open-keychain/issues/2688) causes invalid PGP signatures when using a hardware token.
* Search suggestions causes the keyboard losing focus on Android 12L.
* [A bug](https://techcommunity.microsoft.com/t5/outlook/outlook-office-365-imap-idle-is-broken/m-p/3616242) in the Outlook IMAP server causes delayed new message notifications.
* ~~[A bug](https://techcommunity.microsoft.com/t5/outlook/outlook-office-365-imap-idle-is-broken/m-p/3616242) in the Outlook IMAP server causes delayed new message notifications.~~
* Updating the Material You colors sometimes require restarting the app / the device, which is caused by [a bug](https://issuetracker.google.com/issues/386671298) in the Android WebView.

<a name="redmi"></a>
<a name="realme"></a>
Expand All @@ -153,15 +154,16 @@ Related questions:

&#x1F30E; [Google Translate](https://translate.google.com/translate?sl=en&u=https%3A%2F%2Fm66b.github.io%2FFairEmail%2F%23redmi)

On some Xiaomi Redmi (Note) devices, some Realme devices, some OnePlus devices running Android 12 and some Oppo devices running Android 12 the database occasionally gets corrupted, especially after an update,
On some Xiaomi Redmi (Note) devices, some Realme devices, some OnePlus devices, some Oppo devices, and some Samsung devices running Android 12,
the database occasionally gets corrupted, especially after installing an update,
resulting in total data loss (on the device only, unless you are using a POP3 account with the option *Leave messages on server* disabled).

The cause of this problem are disk I/O errors due to an Android bug (more likely) or maybe a hardware issue (less likely),
please [see here](https://www.sqlite.org/rescode.html#ioerr_write).

"*This error might result from a hardware malfunction or because a filesystem came unmounted while the file was open.*"

This can't be fixed by the app and should be fixed by the device manufacturer.
This can't be fixed by the app and must be fixed by the device manufacturer with an Android update.

**Please do not blame the app for this!**

Expand All @@ -178,7 +180,8 @@ android.database.sqlite.SQLiteDiskIOException: disk I/O error (code 778)
at androidx.room.RoomDatabase.endTransaction(RoomDatabase:584)
```

The cause might be [changes in Android 7 Nougat](https://ericsink.com/entries/sqlite_android_n.html), which is why sqlite isn't bundled anymore since version 1.1970.
This will affect other apps which use a local database intensively too.
Most apps store their data in the cloud instead of on the device, which is why this isn't occurring frequently.

<br />

Expand Down Expand Up @@ -1033,10 +1036,11 @@ Signed-only messages are supported, and encrypted-only messages are supported si

Common errors:

* *No key*: there is no PGP key available for one of the listed email addresses
* *No key*: there is no PGP key available for one of the listed email addresses.
* *No key found!*: the PGP key stored in the identity probably doesn't exist anymore. Resetting the key (see above) will probably fix this problem.
* *Missing key for encryption*: there is probably a key selected in FairEmail that does not exist in the OpenKeychain app anymore. Resetting the key (see above) will probably fix this problem.
* *Key for signature verification is missing*: the public key for the sender is not available in the OpenKeychain app. This can also be caused by Autocrypt being disabled in the encryption settings or by the Autocrypt header not being sent.
* *Message signature valid but not confirmed*: the signature is okay, but the public key still needs to be confirmed in the OpenKeychain app.
* *OpenPgp error 0: null* / *OpenPgp error 0: General error*: please check the key in the OpenKeychain app and make sure there are no conflicting identities for the key and make sure the email address exactly matches the key, including lower/upper case. Also, make sure the key can be used to sign/encrypt and isn't for encrypting/signing only.
* *OpenPgp error 0: Encountered an error reading input data!*: your public key has the [AEAD](https://en.wikipedia.org/wiki/Authenticated_encryption) flag set, but the message was encrypted in the older MDC (Modification Detection Code) mode by the sender. For example the Posteo email server does this erroneously. Workaround: [remove the AEAD flag](https://github.com/keybase/keybase-issues/issues/4025#issuecomment-853933127) from the key.

Expand Down Expand Up @@ -3007,6 +3011,8 @@ You can enable downloading message headers in the connection settings and check
Some common header conditions (regex):

* *.&ast;To:.&ast;undisclosed-recipients.&ast;*
* *.&ast;Cc:.&ast;test@example.com.&ast;*
* *.&ast;Envelope-to:.&ast;test@example.com.&ast;*
* *.&ast;Auto-Submitted:.&ast;* [RFC3834](https://tools.ietf.org/html/rfc3834)
* *.&ast;List-Unsubscribe:.&ast;* [RFC3834](https://datatracker.ietf.org/doc/html/rfc2369)
* *.&ast;Content-Type:.&ast;multipart/report.&ast;* [RFC3462](https://tools.ietf.org/html/rfc3462)
Expand Down Expand Up @@ -3113,7 +3119,7 @@ This website might be useful for testing webhooks:

<br />

<a name="autoanswer">
<a name="autoanswer"></a>
**Auto reply/answer**

First, create a template with the text to reply/answer with via the navigation menu (left side menu).
Expand Down Expand Up @@ -3666,6 +3672,8 @@ see [here](https://developer.android.com/preview/privacy/scoped-storage) and [he
If you use MIUI, please make sure [MIUI optimization](https://android.stackexchange.com/questions/191228/what-is-miui-optimization) is enabled in the developer settings.
You can enable the developer options by tapping a few times on the MIUI version number in the settings, About phone.

See also [this FAQ](#faq25).

<br />

<a name="faq96"></a>
Expand Down Expand Up @@ -4287,6 +4295,18 @@ You can show the answer menu by tapping on the answer button at the bottom right

<br />

*Force light for reformatted message view (1.2254+)*

Show force light menu item / button (when configured) to force a light theme for reformatted messages.

<br />

*Basic image editor (1.2257+)*

Display a basic image editor when tapping an inserted image.

<br />

<a name="faq126"></a>
**(126) Can message previews be sent to my smartwatch?**

Expand Down Expand Up @@ -4766,6 +4786,7 @@ the F-Droid build, but **only if** the version number of the F-Droid build is th

F-Droid builds irregularly, which can be problematic if there is an important update.
Therefore you are advised to switch to the GitHub release.
F-Droid isn't as secure as you might think anyway, [see here](https://privsec.dev/posts/android/f-droid-security-issues/).

Note that developers have no control over F-Droid builds and the F-Droid infrastructure (apps, forums, etc.).

Expand Down Expand Up @@ -5835,10 +5856,9 @@ OpenAI can only be used if configured and enabled.

*Editor*

Tap on the robot button in the top action bar of the message editor.
If the text in the message editor is empty, the message being replied to will be answered (using the configured answer prompt),
else the entered text will be sent, which could be a question or command.
If you select entered text, it will be replaced by the answer.
Tap the robot button in the top action bar of the message editor.
A dialog box will appear (since version 1.2259).
You can select the prompt and select whether to input the message you typed and/or the message you are replying to.

For example: create a new draft and enter the text "*How far is the sun?*", and tap on the robot button in the top action bar.

Expand Down Expand Up @@ -5898,6 +5918,10 @@ It is possible to use **DeepInfra** too (since version 1.2132).

<br>

<br>

If you are looking for Google Gemini support, please see [this FAQ](#faq204).

This feature is experimental and requires version 1.2053 or later for the GitHub version and version 1.2182 or later for the Play Store version.

<br>
Expand Down
2 changes: 1 addition & 1 deletion PRIVACY.md
Original file line number Diff line number Diff line change
Expand Up @@ -296,4 +296,4 @@ The data processor utilizes the services of the following sub-processors in orde
Any support requests are sent voluntarily by the data subject, including any personal data that might be attached.
As such, the explicit consent as outlined in Art. 6 (1) a GDPR forms the legal basis for processing.

Copyright &copy; 2018-2024 Marcel Bokhorst.
Copyright &copy; 2018-2025 Marcel Bokhorst.
35 changes: 20 additions & 15 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apply plugin: 'com.bugsnag.android.gradle'
apply plugin: 'kotlin-android'
apply plugin: 'de.undercouch.download'

def getVersionCode = { -> return 2252 }
def getVersionCode = { -> return 2259 }
def getRevision = { -> return "a" }
def getReleaseName = { -> return "Barsboldia" }
// https://en.wikipedia.org/wiki/List_of_dinosaur_genera
Expand Down Expand Up @@ -63,7 +63,7 @@ android {

// https://developer.android.com/ndk/downloads
// https://developer.android.com/guide/practices/page-sizes
ndkVersion "26.3.11579264" // r26d
ndkVersion "27.2.12479018" // r27c
ndk {
// Bugsnag, sqlite
// https://developer.android.com/ndk/guides/abis
Expand Down Expand Up @@ -226,7 +226,7 @@ android {
buildConfigField "boolean", "FDROID_RELEASE", "false"
buildConfigField "boolean", "AMAZON_RELEASE", "false"
buildConfigField "String", "PRO_FEATURES_URI", "\"https://email.faircode.eu/donate/\""
buildConfigField "String", "CHANGELOG", "\"https://github.com/M66B/FairEmail/releases/\""
buildConfigField "String", "CHANGELOG", "\"https://github.com/niks255/FairEmail/releases/\""
buildConfigField "String", "GITHUB_LATEST_API", "\"https://api.github.com/repos/niks255/FairEmail/releases/latest\""
buildConfigField "String", "GITHUB_LATEST_URI", "\"https://github.com/niks255/FairEmail/releases\""
buildConfigField "String", "BITBUCKET_DOWNLOADS_API", "\"https://api.bitbucket.org/2.0/repositories/M66B/fairemail-test/downloads\""
Expand Down Expand Up @@ -569,12 +569,12 @@ dependencies {
def appcompat_version = "1.7.0"
def emoji_version = "1.5.0"
def flatbuffers_version = "2.0.0"
def activity_version = " 1.9.3" // 1.10.0-rc01
def activity_version = " 1.10.0"
def fragment_version = "1.8.5"
def windows_version = "1.3.0" // 1.4.0-alpha05
def webkit_version = "1.12.0" // 1.13.0-alpha02
def recyclerview_version = "1.3.2" // 1.4.0-rc01
def coordinatorlayout_version = "1.2.0" // 1.3.0-alpha02
def windows_version = "1.3.0" // 1.4.0-beta01
def webkit_version = "1.12.0" // 1.13.0-alpha03
def recyclerview_version = "1.4.0"
def coordinatorlayout_version = "1.2.0" // 1.3.0-alpha03
def constraintlayout_version = "2.2.0"
def viewpager_version = "1.1.0-beta01" // 1.1.0
def material_version = "1.12.0" // 1.13.0-alpha03
Expand All @@ -590,27 +590,27 @@ dependencies {
def paging_version = "2.1.2" // 3.3.5
def preference_version = "1.2.1"
def work_version = "2.10.0"
def exif_version = "1.3.7" // 1.4.0-alpha01
def exif_version = "1.4.0-beta01"
def biometric_version = "1.2.0-alpha05" // 1.4.0-alpha02
def billingclient_version = "6.0.1" // 6.2.0
def playservicesbasement_version = "18.4.0";
def transparency_version = "2.5.49"
def playservicesbasement_version = "18.5.0";
def transparency_version = "2.5.70"
def javamail_version = "1.6.7"
def jsoup_version = "1.18.1"
def jsoup_version = "1.18.3"
def jsonpath_version = "2.9.0"
def css_version = "0.9.30"
def jax_version = "2.3.0-jaxb-1.0.6"
def minidns_version = "1.0.5"
def openpgp_version = "12.0"
def badge_version = "1.1.22"
def bugsnag_version = "6.7.0"
def bugsnag_version = "6.10.0"
def biweekly_version = "0.6.8"
def vcard_version = "0.12.1"
def relinker_version = "1.4.5"
def markwon_version = "4.6.2"
def commonmark_version = "0.22.0"
def flexmark_version = "0.64.8"
def bouncycastle_version = "1.78.1"
def bouncycastle_version = "1.79"
def colorpicker_version = "0.0.15"
def overscroll_version = "1.1.1"
def appauth_version = "0.11.1"
Expand All @@ -627,6 +627,7 @@ dependencies {
def tinylog_version = "2.7.0"
def zxing_version = "3.5.3"
def evalex_version = "3.3.0"
def image_cropper_version = "4.6.0"

// https://mvnrepository.com/artifact/com.android.tools/desugar_jdk_libs?repo=google
coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:$desugar_version"
Expand Down Expand Up @@ -848,7 +849,7 @@ dependencies {
// https://search.maven.org/artifact/io.github.everythingme/overscroll-decor-android
implementation "io.github.everythingme:overscroll-decor-android:$overscroll_version"

// https://www.bouncycastle.org/latest_releases.html
// https://www.bouncycastle.org/news/
// https://mvnrepository.com/artifact/org.bouncycastle/bcpkix-jdk15to18
// https://mvnrepository.com/artifact/org.bouncycastle/bctls-jdk15to18
implementation "org.bouncycastle:bcpkix-jdk15to18:$bouncycastle_version"
Expand Down Expand Up @@ -910,4 +911,8 @@ dependencies {

// https://github.com/ezylang/EvalEx
implementation "com.ezylang:EvalEx:$evalex_version"

// https://github.com/CanHub/Android-Image-Cropper
// https://mvnrepository.com/artifact/com.vanniktech/android-image-cropper
implementation "com.vanniktech:android-image-cropper:$image_cropper_version"
}
5 changes: 5 additions & 0 deletions app/src/amazon/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -613,6 +613,11 @@
android:theme="@style/Theme.AppCompat.Translucent.NoTitleBar"
tools:node="replace" />

<activity
android:name="com.canhub.cropper.CropImageActivity"
android:exported="false"
tools:node="replace" />

<service
android:name=".ServiceSynchronize"
android:exported="false"
Expand Down
2 changes: 1 addition & 1 deletion app/src/amazon/java/eu/faircode/email/ActivityBilling.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
You should have received a copy of the GNU General Public License
along with FairEmail. If not, see <http://www.gnu.org/licenses/>.
Copyright 2018-2024 by Marcel Bokhorst (M66B)
Copyright 2018-2025 by Marcel Bokhorst (M66B)
*/

import android.annotation.SuppressLint;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
You should have received a copy of the GNU General Public License
along with FairEmail. If not, see <http://www.gnu.org/licenses/>.
Copyright 2018-2024 by Marcel Bokhorst (M66B)
Copyright 2018-2025 by Marcel Bokhorst (M66B)
*/

public class ApplicationSecure extends ApplicationEx {
Expand Down
5 changes: 5 additions & 0 deletions app/src/debug/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -622,6 +622,11 @@
android:theme="@style/Theme.AppCompat.Translucent.NoTitleBar"
tools:node="replace" />

<activity
android:name="com.canhub.cropper.CropImageActivity"
android:exported="false"
tools:node="replace" />

<service
android:name=".ServiceSynchronize"
android:exported="false"
Expand Down
2 changes: 1 addition & 1 deletion app/src/debug/java/eu.faircode.email/CoalMine.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
You should have received a copy of the GNU General Public License
along with FairEmail. If not, see <http://www.gnu.org/licenses/>.
Copyright 2018-2024 by Marcel Bokhorst (M66B)
Copyright 2018-2025 by Marcel Bokhorst (M66B)
*/

import android.app.Application;
Expand Down
2 changes: 1 addition & 1 deletion app/src/dummy/java/eu/faircode/email/Avatar.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
You should have received a copy of the GNU General Public License
along with FairEmail. If not, see <http://www.gnu.org/licenses/>.
Copyright 2018-2024 by Marcel Bokhorst (M66B)
Copyright 2018-2025 by Marcel Bokhorst (M66B)
*/

import android.content.Context;
Expand Down
2 changes: 1 addition & 1 deletion app/src/dummy/java/eu/faircode/email/Bimi.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
You should have received a copy of the GNU General Public License
along with FairEmail. If not, see <http://www.gnu.org/licenses/>.
Copyright 2018-2024 by Marcel Bokhorst (M66B)
Copyright 2018-2025 by Marcel Bokhorst (M66B)
*/

import android.content.Context;
Expand Down
2 changes: 1 addition & 1 deletion app/src/dummy/java/eu/faircode/email/Misc.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
You should have received a copy of the GNU General Public License
along with FairEmail. If not, see <http://www.gnu.org/licenses/>.
Copyright 2018-2024 by Marcel Bokhorst (M66B)
Copyright 2018-2025 by Marcel Bokhorst (M66B)
*/

import android.content.Context;
Expand Down
2 changes: 1 addition & 1 deletion app/src/dummy/java/eu/faircode/email/Send.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
You should have received a copy of the GNU General Public License
along with FairEmail. If not, see <http://www.gnu.org/licenses/>.
Copyright 2018-2024 by Marcel Bokhorst (M66B)
Copyright 2018-2025 by Marcel Bokhorst (M66B)
*/

import androidx.documentfile.provider.DocumentFile;
Expand Down
Loading

0 comments on commit 6c7c4e6

Please sign in to comment.