From ea890bfbcdce72db5f2b0842f95fe65628b0a71e Mon Sep 17 00:00:00 2001 From: blankie Date: Tue, 12 Jul 2022 16:32:46 +0700 Subject: [PATCH] Fix URL and check strings case-insensitively --- .../com/blankie/unshortify/ShareActivity.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/blankie/unshortify/ShareActivity.java b/app/src/main/java/com/blankie/unshortify/ShareActivity.java index c620284..f2e72fa 100644 --- a/app/src/main/java/com/blankie/unshortify/ShareActivity.java +++ b/app/src/main/java/com/blankie/unshortify/ShareActivity.java @@ -7,6 +7,8 @@ import android.content.Intent; import android.content.ActivityNotFoundException; import android.net.Uri; import android.util.Log; +import android.webkit.URLUtil; +import java.util.Locale; import com.blankie.unshortify.R; @@ -31,23 +33,27 @@ public class ShareActivity extends Activity { final Intent intent = getIntent(); final String urlString = intent.getStringExtra(Intent.EXTRA_TEXT); logVariable("urlString", urlString); - if (urlString == null || urlString == "") { + if (urlString == null || urlString.isEmpty()) { Toast.makeText(getApplicationContext(), R.string.empty_url, Toast.LENGTH_SHORT).show(); return; } - final Uri urlParsed = Uri.parse(urlString); - final String scheme = urlParsed.getScheme(); + final Uri urlParsed = Uri.parse(URLUtil.guessUrl(urlString)); + final String scheme = urlParsed.getScheme() != null + ? urlParsed.getScheme().toLowerCase(Locale.ROOT) + : null; logVariable("scheme", scheme); - if (scheme != null && !scheme.equals("") && !scheme.equals("http") && - !scheme.equals("https")) { + if (scheme == null || (!scheme.equals("http") + && !scheme.equals("https"))) { Toast.makeText(getApplicationContext(), R.string.unknown_scheme, Toast.LENGTH_SHORT).show(); return; } - final String host = urlParsed.getHost(); + final String host = urlParsed.getHost() != null + ? urlParsed.getHost().toLowerCase(Locale.ROOT) + : null; logVariable("host", host); if (host == null || (!host.equals("youtube.com") && !host.endsWith(".youtube.com"))) { @@ -63,7 +69,7 @@ public class ShareActivity extends Activity { Toast.LENGTH_SHORT).show(); return; } - if (!path.startsWith("/shorts/")) { + if (!path.toLowerCase(Locale.ROOT).startsWith("/shorts/")) { Toast.makeText(getApplicationContext(), R.string.non_shorts_url, Toast.LENGTH_SHORT).show(); return;