Confirm sanitized host/domain

master
M66B 1 week ago
parent 05492aebf1
commit db54ba777c

@ -6805,7 +6805,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
boolean confirm_links = prefs.getBoolean("confirm_links", true); boolean confirm_links = prefs.getBoolean("confirm_links", true);
String chost = FragmentDialogOpenLink.getConfirmHost(uri); String chost = FragmentDialogOpenLink.getConfirmHost(context, uri);
boolean confirm_link = (chost == null || prefs.getBoolean(chost + ".confirm_link", true)); boolean confirm_link = (chost == null || prefs.getBoolean(chost + ".confirm_link", true));
if (always_confirm || (confirm_links && confirm_link)) { if (always_confirm || (confirm_links && confirm_link)) {
if (parentFragment == null) if (parentFragment == null)

@ -348,7 +348,7 @@ public class FragmentDialogOpenLink extends FragmentDialogBase {
cbNotAgain.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { cbNotAgain.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override @Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
prefs.edit().putBoolean(getConfirmHost(uri) + ".confirm_link", !isChecked).apply(); prefs.edit().putBoolean(getConfirmHost(buttonView.getContext(), uri) + ".confirm_link", !isChecked).apply();
} }
}); });
@ -613,7 +613,7 @@ public class FragmentDialogOpenLink extends FragmentDialogBase {
cbSanitize.setChecked(sanitize_links); cbSanitize.setChecked(sanitize_links);
String chost = getConfirmHost(uri); String chost = getConfirmHost(context, uri);
cbNotAgain.setText(context.getString(R.string.title_no_ask_for_again, chost)); cbNotAgain.setText(context.getString(R.string.title_no_ask_for_again, chost));
cbNotAgain.setVisibility(!always_confirm && !sanitize_links && chost != null ? View.VISIBLE : View.GONE); cbNotAgain.setVisibility(!always_confirm && !sanitize_links && chost != null ? View.VISIBLE : View.GONE);
@ -960,10 +960,11 @@ public class FragmentDialogOpenLink extends FragmentDialogBase {
} }
} }
public static String getConfirmHost(Uri uri) { public static String getConfirmHost(Context context, Uri uri) {
String scheme = uri.getScheme(); String scheme = uri.getScheme();
if ("https".equals(scheme)) { if ("https".equals(scheme)) {
String host = uri.getHost(); Uri sanitized = UriHelper.sanitize(context, uri);
String host = (sanitized == null ? uri : sanitized).getHost();
return (TextUtils.isEmpty(host) ? null : host.toLowerCase(Locale.ROOT)); return (TextUtils.isEmpty(host) ? null : host.toLowerCase(Locale.ROOT));
} else if ("mailto".equals(scheme)) { } else if ("mailto".equals(scheme)) {
MailTo mailto = MailTo.parse(uri); MailTo mailto = MailTo.parse(uri);

Loading…
Cancel
Save