Free to use

This commit is contained in:
M66B 2021-02-28 12:14:08 +01:00
parent bd5df69465
commit a7ee900626
5 changed files with 56 additions and 3 deletions

6
FAQ.md
View File

@ -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.

View File

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

View File

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

View File

@ -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"

View File

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