diff --git a/FAQ.md b/FAQ.md
index 91a634aac7..eda41109ab 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -962,6 +962,9 @@ See also [this FAQ](#user-content-faq15).
**(19) Why are the pro features so expensive?**
+First of all, only some convenience and advanced features need to be purchased which means that FairEmail is basically free to use.
+Please see the Play store description of the app or [see here](https://email.faircode.eu/#pro) for a complete list of all pro features.
+
The right question is "*why are there so many taxes and fees?*":
* VAT: 25 % (depending on your country)
@@ -971,10 +974,9 @@ The right question is "*why are there so many taxes and fees?*":
So, what is left for the developer is just a fraction of what you pay.
-Note that only some convenience and advanced features need to be purchased which means that FairEmail is basically free to use.
-
Also note that most free apps will appear not to be sustainable in the end, whereas FairEmail is properly maintained and supported,
and that free apps may have a catch, like sending privacy sensitive information to the internet.
+There are no privacy violating ads in the app either.
I have been working on FairEmail almost every day for more than two years, so I think the price is more than reasonable.
For this reason there won't be discounts either.
diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java
index b049b71318..e1657919aa 100644
--- a/app/src/main/java/eu/faircode/email/FragmentSetup.java
+++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java
@@ -71,6 +71,7 @@ public class FragmentSetup extends FragmentBase {
private Button btnIdentity;
private TextView tvExchangeSupport;
private TextView tvIdentityWhat;
+ private TextView tvFree;
private TextView tvNoComposable;
private TextView tvPermissionsDone;
@@ -126,6 +127,7 @@ public class FragmentSetup extends FragmentBase {
btnIdentity = view.findViewById(R.id.btnIdentity);
tvExchangeSupport = view.findViewById(R.id.tvExchangeSupport);
tvIdentityWhat = view.findViewById(R.id.tvIdentityWhat);
+ tvFree = view.findViewById(R.id.tvFree);
tvNoComposable = view.findViewById(R.id.tvNoComposable);
tvPermissionsDone = view.findViewById(R.id.tvPermissionsDone);
@@ -277,6 +279,14 @@ public class FragmentSetup extends FragmentBase {
}
});
+ tvFree.setPaintFlags(tvFree.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG);
+ tvFree.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Helper.viewFAQ(v.getContext(), 19);
+ }
+ });
+
btnPermissions.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
diff --git a/app/src/main/res/drawable/twotone_open_in_new_12.xml b/app/src/main/res/drawable/twotone_open_in_new_12.xml
new file mode 100644
index 0000000000..3b8ae2667c
--- /dev/null
+++ b/app/src/main/res/drawable/twotone_open_in_new_12.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/layout/fragment_setup.xml b/app/src/main/res/layout/fragment_setup.xml
index e1332c2474..d03fdd374f 100644
--- a/app/src/main/res/layout/fragment_setup.xml
+++ b/app/src/main/res/layout/fragment_setup.xml
@@ -86,6 +86,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
+ android:drawableEnd="@drawable/twotone_open_in_new_12"
+ android:drawablePadding="6dp"
+ android:drawableTint="?android:attr/textColorLink"
android:text="@string/title_setup_wizard_new"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
@@ -249,6 +252,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
+ android:drawableEnd="@drawable/twotone_open_in_new_12"
+ android:drawablePadding="6dp"
+ android:drawableTint="?android:attr/textColorLink"
android:text="@string/title_setup_exchange_support"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?android:attr/textColorLink"
@@ -260,6 +266,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
+ android:drawableEnd="@drawable/twotone_open_in_new_12"
+ android:drawablePadding="6dp"
+ android:drawableTint="?android:attr/textColorLink"
android:text="@string/title_setup_identity_what"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?android:attr/textColorLink"
@@ -288,6 +297,21 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvNoComposable" />
+
+
+ app:layout_constraintTop_toBottomOf="@id/tvFree" />
Grant required permissions
Is Microsoft Exchange supported?
What is an identity?
+ Is this app free to use?
Grant permissions
To access contact information (optional)
Disable battery optimizations