From 7d6a780f25926731800bd765fea14d91bcfa2683 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 15 Aug 2019 07:58:20 +0200 Subject: [PATCH] Revised link handling --- app/src/main/AndroidManifest.xml | 10 ++-- .../java/eu/faircode/email/ActivitySetup.java | 17 +++--- .../java/eu/faircode/email/ActivityView.java | 52 ++++++++----------- .../java/eu/faircode/email/FragmentAbout.java | 23 ++------ .../eu/faircode/email/FragmentCompose.java | 24 +++------ .../eu/faircode/email/FragmentContacts.java | 18 +------ .../eu/faircode/email/FragmentMessages.java | 9 +--- .../eu/faircode/email/FragmentOperations.java | 18 +------ .../java/eu/faircode/email/FragmentPro.java | 16 +++--- .../java/eu/faircode/email/FragmentSetup.java | 5 +- .../main/java/eu/faircode/email/Helper.java | 15 ++++-- app/src/main/res/layout/fragment_pro.xml | 1 + app/src/main/res/menu/menu_about.xml | 5 -- 13 files changed, 71 insertions(+), 142 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0be02c078b..78199b52ee 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -82,7 +82,7 @@ @@ -157,7 +157,8 @@ android:name=".ActivityEml" android:exported="true" android:icon="@mipmap/ic_launcher" - android:label="@string/app_name"> + android:label="@string/app_name" + android:launchMode="singleTop"> @@ -191,7 +192,8 @@ android:name=".ActivityDSN" android:exported="true" android:icon="@mipmap/ic_launcher" - android:label="@string/app_name"> + android:label="@string/app_name" + android:launchMode="singleTop"> @@ -211,7 +213,7 @@ android:name=".ActivityBilling" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" - android:launchMode="singleInstance" /> + android:launchMode="singleTop" /> " + Html.escapeHtml(getString(R.string.title_pro_list)) + "")); - tvList.setMovementMethod(LinkMovementMethod.getInstance()); + tvList.setPaintFlags(tvList.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); + tvList.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Helper.view(getContext(), Uri.parse(BuildConfig.PRO_FEATURES_URI), false); + } + }); btnPurchase.setOnClickListener(new View.OnClickListener() { @Override @@ -138,9 +142,7 @@ public class FragmentPro extends FragmentBase implements SharedPreferences.OnSha @Override public void onError(String message) { - final Intent support = new Intent( - Intent.ACTION_VIEW, - Uri.parse("https://contact.faircode.eu/?product=fairemailsupport")); + final Intent support = new Intent(Intent.ACTION_VIEW, Uri.parse(Helper.SUPPORT_URI)); Snackbar snackbar = Snackbar.make(getView(), message, Snackbar.LENGTH_LONG); if (support.resolveActivity(getContext().getPackageManager()) != null) snackbar.setAction(R.string.title_setup_help, new View.OnClickListener() { diff --git a/app/src/main/java/eu/faircode/email/FragmentSetup.java b/app/src/main/java/eu/faircode/email/FragmentSetup.java index 094e8dda84..bbd6542483 100644 --- a/app/src/main/java/eu/faircode/email/FragmentSetup.java +++ b/app/src/main/java/eu/faircode/email/FragmentSetup.java @@ -28,7 +28,6 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.graphics.drawable.Drawable; -import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.PowerManager; @@ -185,12 +184,10 @@ public class FragmentSetup extends FragmentBase { } }); - final Intent faq = new Intent(Intent.ACTION_VIEW, Uri.parse(Helper.FAQ_URI + "#user-content-faq39")); - btnBattery.setVisibility(faq.resolveActivity(pm) == null ? View.GONE : View.VISIBLE); btnBattery.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - startActivity(faq); + Helper.viewFAQ(getContext(), 39); } }); diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index 1ac3660495..9817bad196 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -115,6 +115,10 @@ public class Helper { static final String FAQ_URI = "https://github.com/M66B/FairEmail/blob/master/FAQ.md"; static final String XDA_URI = "https://forum.xda-developers.com/showthread.php?t=3824168"; + static final String SUPPORT_URI = "https://contact.faircode.eu/?product=fairemailsupport"; + static final String PGP_URI = "https://f-droid.org/en/packages/org.sufficientlysecure.keychain/"; + static final String PLAY_APPS_URI = "https://play.google.com/store/apps/dev?id=8420080860664580239"; + static final String XDA_APPS_URI = "https://forum.xda-developers.com/search.php?searchid=457176824"; static ThreadFactory backgroundThreadFactory = new ThreadFactory() { private final AtomicInteger threadId = new AtomicInteger(); @@ -212,15 +216,16 @@ public class Helper { } } - static Intent getIntentFAQ() { - Intent intent = new Intent(Intent.ACTION_VIEW); - intent.setData(Uri.parse(Helper.FAQ_URI)); - return intent; + static void viewFAQ(Context context, int question) { + if (question == 0) + view(context, Uri.parse(FAQ_URI), false); + else + view(context, Uri.parse(Helper.FAQ_URI + "#user-content-faq" + question), false); } static Intent getIntentOpenKeychain() { Intent intent = new Intent(Intent.ACTION_VIEW); - intent.setData(Uri.parse("https://f-droid.org/en/packages/org.sufficientlysecure.keychain/")); + intent.setData(Uri.parse(PGP_URI)); return intent; } diff --git a/app/src/main/res/layout/fragment_pro.xml b/app/src/main/res/layout/fragment_pro.xml index e5f59f8503..b22c7e0db4 100644 --- a/app/src/main/res/layout/fragment_pro.xml +++ b/app/src/main/res/layout/fragment_pro.xml @@ -46,6 +46,7 @@ android:layout_marginTop="24dp" android:text="@string/title_pro_list" android:textAppearance="@style/TextAppearance.AppCompat.Small" + android:textColor="?attr/colorAccent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/tvActivated" /> diff --git a/app/src/main/res/menu/menu_about.xml b/app/src/main/res/menu/menu_about.xml index 9bb6f412c5..595a240792 100644 --- a/app/src/main/res/menu/menu_about.xml +++ b/app/src/main/res/menu/menu_about.xml @@ -6,11 +6,6 @@ android:title="@string/app_changelog" app:showAsAction="never" /> - -