diff --git a/app/src/main/java/org/schabi/newpipe/MainActivity.java b/app/src/main/java/org/schabi/newpipe/MainActivity.java index d4b2305c7e3..b53bee5a87c 100644 --- a/app/src/main/java/org/schabi/newpipe/MainActivity.java +++ b/app/src/main/java/org/schabi/newpipe/MainActivity.java @@ -763,6 +763,10 @@ private void handleIntent(final Intent intent) { NavigationHelper.openPlaylistFragment(getSupportFragmentManager(), serviceId, url, title); break; + case SEARCH: + NavigationHelper.openSearchFragment(getSupportFragmentManager(), serviceId, + intent.getStringExtra(Constants.KEY_SEARCH_STRING)); + break; } } else if (intent.hasExtra(Constants.KEY_OPEN_SEARCH)) { String searchString = intent.getStringExtra(Constants.KEY_SEARCH_STRING); diff --git a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java index 13413e89dfd..107c635d307 100644 --- a/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/NavigationHelper.java @@ -657,6 +657,20 @@ private static Intent getOpenIntent(final Context context, final String url, return mIntent; } + private static Intent getOpenSearchIntent(final Context context, final String url, + final int serviceId, + final StreamingService.LinkType type, + final String searchString) { + final Intent mIntent = new Intent(context, MainActivity.class); + mIntent.putExtra(Constants.KEY_SERVICE_ID, serviceId); + mIntent.putExtra(Constants.KEY_URL, url); + mIntent.putExtra(Constants.KEY_LINK_TYPE, type); + mIntent.putExtra(Constants.KEY_SEARCH_STRING, searchString); + return mIntent; + } + + + public static Intent getIntentByLink(final Context context, final String url) throws ExtractionException { return getIntentByLink(context, NewPipe.getServiceByUrl(url), url); @@ -672,6 +686,11 @@ public static Intent getIntentByLink(final Context context, + " url=" + url); } + if (linkType == StreamingService.LinkType.SEARCH) { + return getOpenSearchIntent(context, url, service.getServiceId(), + linkType, service.getIdByUrl(url)); + } + return getOpenIntent(context, url, service.getServiceId(), linkType); }