mirror of https://github.com/M66B/FairEmail.git
Added search for mailto addresses
This commit is contained in:
parent
f338214be4
commit
a5fa1ed49c
|
@ -57,6 +57,7 @@ import androidx.appcompat.app.AlertDialog;
|
||||||
import androidx.constraintlayout.widget.Group;
|
import androidx.constraintlayout.widget.Group;
|
||||||
import androidx.core.net.MailTo;
|
import androidx.core.net.MailTo;
|
||||||
import androidx.core.util.PatternsCompat;
|
import androidx.core.util.PatternsCompat;
|
||||||
|
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||||
import androidx.preference.PreferenceManager;
|
import androidx.preference.PreferenceManager;
|
||||||
|
|
||||||
import java.net.IDN;
|
import java.net.IDN;
|
||||||
|
@ -156,11 +157,12 @@ public class FragmentDialogOpenLink extends FragmentDialogBase {
|
||||||
final ImageButton ibDifferent = dview.findViewById(R.id.ibDifferent);
|
final ImageButton ibDifferent = dview.findViewById(R.id.ibDifferent);
|
||||||
final EditText etLink = dview.findViewById(R.id.etLink);
|
final EditText etLink = dview.findViewById(R.id.etLink);
|
||||||
final TextView tvLink = dview.findViewById(R.id.tvLink);
|
final TextView tvLink = dview.findViewById(R.id.tvLink);
|
||||||
|
final ImageButton ibSearch = dview.findViewById(R.id.ibSearch);
|
||||||
|
final ImageButton ibShare = dview.findViewById(R.id.ibShare);
|
||||||
|
final ImageButton ibCopy = dview.findViewById(R.id.ibCopy);
|
||||||
final TextView tvSuspicious = dview.findViewById(R.id.tvSuspicious);
|
final TextView tvSuspicious = dview.findViewById(R.id.tvSuspicious);
|
||||||
final TextView tvDisconnect = dview.findViewById(R.id.tvDisconnect);
|
final TextView tvDisconnect = dview.findViewById(R.id.tvDisconnect);
|
||||||
final TextView tvDisconnectCategories = dview.findViewById(R.id.tvDisconnectCategories);
|
final TextView tvDisconnectCategories = dview.findViewById(R.id.tvDisconnectCategories);
|
||||||
final ImageButton ibShare = dview.findViewById(R.id.ibShare);
|
|
||||||
final ImageButton ibCopy = dview.findViewById(R.id.ibCopy);
|
|
||||||
final CheckBox cbSecure = dview.findViewById(R.id.cbSecure);
|
final CheckBox cbSecure = dview.findViewById(R.id.cbSecure);
|
||||||
final CheckBox cbSanitize = dview.findViewById(R.id.cbSanitize);
|
final CheckBox cbSanitize = dview.findViewById(R.id.cbSanitize);
|
||||||
final CheckBox cbNotAgain = dview.findViewById(R.id.cbNotAgain);
|
final CheckBox cbNotAgain = dview.findViewById(R.id.cbNotAgain);
|
||||||
|
@ -241,6 +243,30 @@ public class FragmentDialogOpenLink extends FragmentDialogBase {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
MailTo mailto = null;
|
||||||
|
if ("mailto".equals(uri.getScheme()))
|
||||||
|
try {
|
||||||
|
mailto = MailTo.parse(uri);
|
||||||
|
} catch (Throwable ex) {
|
||||||
|
Log.w(ex);
|
||||||
|
}
|
||||||
|
ibSearch.setVisibility(
|
||||||
|
mailto != null && !TextUtils.isEmpty(mailto.getTo())
|
||||||
|
? View.VISIBLE : View.GONE);
|
||||||
|
ibSearch.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
dismiss();
|
||||||
|
|
||||||
|
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(context);
|
||||||
|
lbm.sendBroadcast(
|
||||||
|
new Intent(ActivityView.ACTION_SEARCH_ADDRESS)
|
||||||
|
.putExtra("account", -1L)
|
||||||
|
.putExtra("folder", -1L)
|
||||||
|
.putExtra("query", MailTo.parse(uri).getTo()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
ibShare.setOnClickListener(new View.OnClickListener() {
|
ibShare.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
|
@ -610,7 +636,7 @@ public class FragmentDialogOpenLink extends FragmentDialogBase {
|
||||||
text = "tel://" + host;
|
text = "tel://" + host;
|
||||||
} else if ("mailto".equals(scheme)) {
|
} else if ("mailto".equals(scheme)) {
|
||||||
if (host == null) {
|
if (host == null) {
|
||||||
MailTo email = MailTo.parse(uri.toString());
|
MailTo email = MailTo.parse(uri);
|
||||||
host = UriHelper.getEmailDomain(email.getTo());
|
host = UriHelper.getEmailDomain(email.getTo());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,10 +82,22 @@
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:text="Original link"
|
android:text="Original link"
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/ibShare"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/etLink" />
|
app:layout_constraintTop_toBottomOf="@id/etLink" />
|
||||||
|
|
||||||
|
<ImageButton
|
||||||
|
android:id="@+id/ibSearch"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="12dp"
|
||||||
|
android:background="?android:attr/selectableItemBackgroundBorderless"
|
||||||
|
android:contentDescription="@string/title_search"
|
||||||
|
android:tooltipText="@string/title_search"
|
||||||
|
app:layout_constraintEnd_toStartOf="@+id/ibShare"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/tvLink"
|
||||||
|
app:srcCompat="@drawable/twotone_search_24" />
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/ibShare"
|
android:id="@+id/ibShare"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
@ -93,8 +105,9 @@
|
||||||
android:layout_marginEnd="12dp"
|
android:layout_marginEnd="12dp"
|
||||||
android:background="?android:attr/selectableItemBackgroundBorderless"
|
android:background="?android:attr/selectableItemBackgroundBorderless"
|
||||||
android:contentDescription="@string/title_share"
|
android:contentDescription="@string/title_share"
|
||||||
|
android:tooltipText="@string/title_share"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/ibCopy"
|
app:layout_constraintEnd_toStartOf="@+id/ibCopy"
|
||||||
app:layout_constraintTop_toBottomOf="@id/etLink"
|
app:layout_constraintTop_toBottomOf="@id/tvLink"
|
||||||
app:srcCompat="@drawable/twotone_share_24" />
|
app:srcCompat="@drawable/twotone_share_24" />
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
|
@ -103,8 +116,9 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="?android:attr/selectableItemBackgroundBorderless"
|
android:background="?android:attr/selectableItemBackgroundBorderless"
|
||||||
android:contentDescription="@string/title_clipboard_copy"
|
android:contentDescription="@string/title_clipboard_copy"
|
||||||
|
android:tooltipText="@string/title_clipboard_copy"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/etLink"
|
app:layout_constraintTop_toBottomOf="@id/tvLink"
|
||||||
app:srcCompat="@drawable/twotone_file_copy_24" />
|
app:srcCompat="@drawable/twotone_file_copy_24" />
|
||||||
|
|
||||||
<eu.faircode.email.FixedTextView
|
<eu.faircode.email.FixedTextView
|
||||||
|
|
Loading…
Reference in New Issue