Free to use

pull/194/head
M66B 4 years ago
parent bd5df69465
commit a7ee900626

@ -962,6 +962,9 @@ See also [this FAQ](#user-content-faq15).
<a name="faq19"></a>
**(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.

@ -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) {

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="12dp"
android:height="12dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M19,19H5V5h7V3H5c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2v-7h-2v7zM14,3v2h3.59l-9.83,9.83 1.41,1.41L19,6.41V10h2V3h-7z"/>
</vector>

@ -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" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvFree"
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_free"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?android:attr/textColorLink"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btnInbox" />
<!-- permissions -->
<View
@ -298,7 +322,7 @@
android:background="?attr/colorSeparator"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btnInbox" />
app:layout_constraintTop_toBottomOf="@id/tvFree" />
<ImageView
android:id="@+id/two"
@ -439,6 +463,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_doze_battery"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?android:attr/textColorLink"
@ -450,6 +477,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_doze_stopped"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?android:attr/textColorLink"

@ -203,6 +203,7 @@
<string name="title_setup_grant_again">Grant required permissions</string>
<string name="title_setup_exchange_support">Is Microsoft Exchange supported?</string>
<string name="title_setup_identity_what">What is an identity?</string>
<string name="title_setup_free">Is this app free to use?</string>
<string name="title_setup_permissions">Grant permissions</string>
<string name="title_setup_permissions_remark">To access contact information (optional)</string>
<string name="title_setup_doze">Disable battery optimizations</string>

Loading…
Cancel
Save