diff --git a/briar-android/src/org/briarproject/android/widget/LinkDialogFragment.java b/briar-android/src/org/briarproject/android/widget/LinkDialogFragment.java index 1a6e636eef775bb84cfc8a1c5e8c862ba87aed59..ffee887f638c58e8f384c5868cbfde1e03a169f5 100644 --- a/briar-android/src/org/briarproject/android/widget/LinkDialogFragment.java +++ b/briar-android/src/org/briarproject/android/widget/LinkDialogFragment.java @@ -2,6 +2,7 @@ package org.briarproject.android.widget; import android.content.Intent; +import android.content.pm.PackageManager; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.DialogFragment; @@ -14,6 +15,7 @@ import android.widget.TextView; import org.briarproject.R; +import java.util.List; public class LinkDialogFragment extends DialogFragment { @@ -50,12 +52,21 @@ public class LinkDialogFragment extends DialogFragment { TextView urlView = (TextView) v.findViewById(R.id.urlView); urlView.setText(url); + // prepare normal intent or intent chooser + Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); + PackageManager packageManager = getContext().getPackageManager(); + List activities = packageManager.queryIntentActivities(i, + PackageManager.MATCH_DEFAULT_ONLY); + boolean choice = activities.size() > 1; + final Intent intent = choice ? Intent.createChooser(i, + getString(R.string.link_warning_open_link)) : i; + Button openButton = (Button) v.findViewById(R.id.openButton); openButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { - Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); - startActivity(i); + startActivity(intent); + getDialog().dismiss(); } });