Compare commits

..

2 Commits

Author SHA1 Message Date
blankie ea890bfbcd
Fix URL and check strings case-insensitively 2022-07-12 16:35:10 +07:00
blankie 1b86ec39f1
Send the right intent 2022-07-12 14:38:50 +07:00
1 changed files with 14 additions and 8 deletions

View File

@ -7,6 +7,8 @@ import android.content.Intent;
import android.content.ActivityNotFoundException; import android.content.ActivityNotFoundException;
import android.net.Uri; import android.net.Uri;
import android.util.Log; import android.util.Log;
import android.webkit.URLUtil;
import java.util.Locale;
import com.blankie.unshortify.R; import com.blankie.unshortify.R;
@ -31,23 +33,27 @@ public class ShareActivity extends Activity {
final Intent intent = getIntent(); final Intent intent = getIntent();
final String urlString = intent.getStringExtra(Intent.EXTRA_TEXT); final String urlString = intent.getStringExtra(Intent.EXTRA_TEXT);
logVariable("urlString", urlString); logVariable("urlString", urlString);
if (urlString == null || urlString == "") { if (urlString == null || urlString.isEmpty()) {
Toast.makeText(getApplicationContext(), R.string.empty_url, Toast.makeText(getApplicationContext(), R.string.empty_url,
Toast.LENGTH_SHORT).show(); Toast.LENGTH_SHORT).show();
return; return;
} }
final Uri urlParsed = Uri.parse(urlString); final Uri urlParsed = Uri.parse(URLUtil.guessUrl(urlString));
final String scheme = urlParsed.getScheme(); final String scheme = urlParsed.getScheme() != null
? urlParsed.getScheme().toLowerCase(Locale.ROOT)
: null;
logVariable("scheme", scheme); logVariable("scheme", scheme);
if (scheme != null && !scheme.equals("") && !scheme.equals("http") && if (scheme == null || (!scheme.equals("http")
!scheme.equals("https")) { && !scheme.equals("https"))) {
Toast.makeText(getApplicationContext(), R.string.unknown_scheme, Toast.makeText(getApplicationContext(), R.string.unknown_scheme,
Toast.LENGTH_SHORT).show(); Toast.LENGTH_SHORT).show();
return; return;
} }
final String host = urlParsed.getHost(); final String host = urlParsed.getHost() != null
? urlParsed.getHost().toLowerCase(Locale.ROOT)
: null;
logVariable("host", host); logVariable("host", host);
if (host == null || (!host.equals("youtube.com") && if (host == null || (!host.equals("youtube.com") &&
!host.endsWith(".youtube.com"))) { !host.endsWith(".youtube.com"))) {
@ -63,7 +69,7 @@ public class ShareActivity extends Activity {
Toast.LENGTH_SHORT).show(); Toast.LENGTH_SHORT).show();
return; return;
} }
if (!path.startsWith("/shorts/")) { if (!path.toLowerCase(Locale.ROOT).startsWith("/shorts/")) {
Toast.makeText(getApplicationContext(), R.string.non_shorts_url, Toast.makeText(getApplicationContext(), R.string.non_shorts_url,
Toast.LENGTH_SHORT).show(); Toast.LENGTH_SHORT).show();
return; return;
@ -85,7 +91,7 @@ public class ShareActivity extends Activity {
final Intent unshortifiedIntent = new Intent(Intent.ACTION_VIEW, unshortifiedUrl); final Intent unshortifiedIntent = new Intent(Intent.ACTION_VIEW, unshortifiedUrl);
try { try {
startActivity(intent); startActivity(unshortifiedIntent);
} catch (ActivityNotFoundException e) { } catch (ActivityNotFoundException e) {
e.printStackTrace(); e.printStackTrace();
Toast.makeText(getApplicationContext(), R.string.no_activity_found, Toast.makeText(getApplicationContext(), R.string.no_activity_found,