diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java b/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java index 3478e48a5f..f3161dc5d4 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java @@ -168,6 +168,7 @@ public class FragmentDialogOpenLink extends FragmentDialogBase { // Get views final View dview = LayoutInflater.from(context).inflate(R.layout.dialog_open_link, null); scroll = dview.findViewById(R.id.scroll); + final TextView tvCaption = dview.findViewById(R.id.tvCaption); final ImageButton ibInfo = dview.findViewById(R.id.ibInfo); final TextView tvTitle = dview.findViewById(R.id.tvTitle); final ImageButton ibDifferent = dview.findViewById(R.id.ibDifferent); @@ -529,6 +530,13 @@ public class FragmentDialogOpenLink extends FragmentDialogBase { // Initialize + if (UriHelper.isHyperLink(uri)) + tvCaption.setCompoundDrawablesWithIntrinsicBounds(R.drawable.twotone_insert_link_45_24, 0, 0, 0); + else if (UriHelper.isPhoneNumber(uri)) + tvCaption.setCompoundDrawablesWithIntrinsicBounds(R.drawable.twotone_call_24, 0, 0, 0); + else if (UriHelper.isGeo(uri)) + tvCaption.setCompoundDrawablesWithIntrinsicBounds(R.drawable.twotone_language_24, 0, 0, 0); + tvTitle.setText(title); tvTitle.setVisibility(TextUtils.isEmpty(title) ? View.GONE : View.VISIBLE); diff --git a/app/src/main/java/eu/faircode/email/UriHelper.java b/app/src/main/java/eu/faircode/email/UriHelper.java index 7ae9b6070f..7b5cea0d30 100644 --- a/app/src/main/java/eu/faircode/email/UriHelper.java +++ b/app/src/main/java/eu/faircode/email/UriHelper.java @@ -544,6 +544,14 @@ public class UriHelper { "https".equalsIgnoreCase(uri.getScheme()))); } + static boolean isPhoneNumber(Uri uri) { + return (uri.isOpaque() && "tel".equalsIgnoreCase(uri.getScheme())); + } + + static boolean isGeo(Uri uri) { + return (uri.isOpaque() && "geo".equalsIgnoreCase(uri.getScheme())); + } + static Uri fix(Uri uri) { if ((!"http".equals(uri.getScheme()) && "http".equalsIgnoreCase(uri.getScheme())) || (!"https".equals(uri.getScheme()) && "https".equalsIgnoreCase(uri.getScheme()))) { diff --git a/app/src/main/res/drawable/twotone_call_24.xml b/app/src/main/res/drawable/twotone_call_24.xml new file mode 100644 index 0000000000..0962b3f9b8 --- /dev/null +++ b/app/src/main/res/drawable/twotone_call_24.xml @@ -0,0 +1,15 @@ + + + + diff --git a/app/src/main/res/layout/dialog_open_link.xml b/app/src/main/res/layout/dialog_open_link.xml index a4617d550a..354926c65f 100644 --- a/app/src/main/res/layout/dialog_open_link.xml +++ b/app/src/main/res/layout/dialog_open_link.xml @@ -15,6 +15,7 @@ android:id="@+id/tvCaption" android:layout_width="0dp" android:layout_height="wrap_content" + android:drawablePadding="6dp" android:text="@string/title_open_link" android:textAppearance="@style/TextAppearance.AppCompat.Large" app:layout_constraintEnd_toStartOf="@+id/ibInfo"