Fixed query args Outlook safelinks

pull/178/head
M66B 5 years ago
parent 54d58812fe
commit 88a815334f

@ -5217,24 +5217,26 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
else { else {
boolean changed = false; boolean changed = false;
Uri url;
Uri.Builder builder; Uri.Builder builder;
if (uri.getHost() != null && if (uri.getHost() != null &&
uri.getHost().endsWith("safelinks.protection.outlook.com") && uri.getHost().endsWith("safelinks.protection.outlook.com") &&
!TextUtils.isEmpty(uri.getQueryParameter("url"))) { !TextUtils.isEmpty(uri.getQueryParameter("url"))) {
changed = true; changed = true;
builder = Uri.parse(uri.getQueryParameter("url")).buildUpon(); url = Uri.parse(uri.getQueryParameter("url"));
} } else
else url = uri;
builder = uri.buildUpon();
builder = url.buildUpon();
builder.clearQuery(); builder.clearQuery();
for (String key : uri.getQueryParameterNames()) for (String key : url.getQueryParameterNames())
// https://en.wikipedia.org/wiki/UTM_parameters // https://en.wikipedia.org/wiki/UTM_parameters
if (key.toLowerCase(Locale.ROOT).startsWith("utm_") || if (key.toLowerCase(Locale.ROOT).startsWith("utm_") ||
PARANOID_QUERY.contains(key.toLowerCase(Locale.ROOT))) PARANOID_QUERY.contains(key.toLowerCase(Locale.ROOT)))
changed = true; changed = true;
else if (!TextUtils.isEmpty(key)) else if (!TextUtils.isEmpty(key))
for (String value : uri.getQueryParameters(key)) { for (String value : url.getQueryParameters(key)) {
Log.i("Query " + key + "=" + value); Log.i("Query " + key + "=" + value);
builder.appendQueryParameter(key, value); builder.appendQueryParameter(key, value);
} }

Loading…
Cancel
Save