From dac768307891a7a3347f52f6971c2d3e5ce403e2 Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 15 Jul 2022 18:53:31 +0200 Subject: [PATCH] Why do I need to select an on-device account? --- FAQ.md | 1 + .../java/eu/faircode/email/FragmentGmail.java | 10 ++++++++++ app/src/main/res/layout/fragment_gmail.xml | 20 +++++++++++++++++-- app/src/main/res/values/strings.xml | 1 + 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/FAQ.md b/FAQ.md index 1424e4f023..c728efecdc 100644 --- a/FAQ.md +++ b/FAQ.md @@ -3399,6 +3399,7 @@ OAuth for Gmail is supported via the quick setup wizard. The Android account manager will be used to fetch and refresh OAuth tokens for selected on-device accounts. OAuth for non on-device accounts is not supported because Google requires a [yearly security audit](https://support.google.com/cloud/answer/9110914) ($15,000 to $75,000) for this. +Since FairEmail is basically offered free of charge, it is not an option to pay such an amount annually for a security audit. You can read more about this [here](https://www.theregister.com/2019/02/11/google_gmail_developer/). OAuth for Outlook/Office 365, Yahoo, Mail.ru and Yandex is supported via the quick setup wizard. diff --git a/app/src/main/java/eu/faircode/email/FragmentGmail.java b/app/src/main/java/eu/faircode/email/FragmentGmail.java index 2d6260361e..94037b05a7 100644 --- a/app/src/main/java/eu/faircode/email/FragmentGmail.java +++ b/app/src/main/java/eu/faircode/email/FragmentGmail.java @@ -86,6 +86,7 @@ public class FragmentGmail extends FragmentBase { private Button btnSelect; private ContentLoadingProgressBar pbSelect; + private TextView tvOnDevice; private TextView tvAppPassword; private TextView tvError; @@ -129,6 +130,7 @@ public class FragmentGmail extends FragmentBase { btnSelect = view.findViewById(R.id.btnSelect); pbSelect = view.findViewById(R.id.pbSelect); + tvOnDevice = view.findViewById(R.id.tvOnDevice); tvAppPassword = view.findViewById(R.id.tvAppPassword); tvError = view.findViewById(R.id.tvError); @@ -200,6 +202,14 @@ public class FragmentGmail extends FragmentBase { } }); + tvOnDevice.setPaintFlags(tvOnDevice.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); + tvOnDevice.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Helper.viewFAQ(v.getContext(), 111); + } + }); + tvAppPassword.setPaintFlags(tvAppPassword.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); tvAppPassword.setOnClickListener(new View.OnClickListener() { @Override diff --git a/app/src/main/res/layout/fragment_gmail.xml b/app/src/main/res/layout/fragment_gmail.xml index 9f321c9916..297392c42a 100644 --- a/app/src/main/res/layout/fragment_gmail.xml +++ b/app/src/main/res/layout/fragment_gmail.xml @@ -154,9 +154,24 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/btnSelect" /> + + + app:layout_constraintTop_toBottomOf="@id/tvOnDevice" /> Authorizing Google accounts will work in the Play Store and GitHub version only because Android checks the digital app signature Please grant permissions to select an account and read your name Google will ask for permissions to read, compose, send and permanently delete all your email. FairEmail will never delete your messages without your explicit consent. + Why do I need to select an on-device account? I want to authorize an account with a password instead of an on-device account The error \'AUTHENTICATE failed\' can be caused by IMAP/SMTP being disabled by the system administrator Authorize access to your %1$s account