diff --git a/app/src/main/java/com/radiola/deeplink/DeeplinkNavigator.kt b/app/src/main/java/com/radiola/deeplink/DeeplinkNavigator.kt index e14a34f..2340b51 100644 --- a/app/src/main/java/com/radiola/deeplink/DeeplinkNavigator.kt +++ b/app/src/main/java/com/radiola/deeplink/DeeplinkNavigator.kt @@ -15,6 +15,32 @@ object DeeplinkNavigator { val url = service.buildSearchUrl(track.artist, track.song) Log.d("DeeplinkNavigator", "url=$url") val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url)) + + val pkg = service.packageName + if (pkg != null) { + // Сторонний клиент: открыть напрямую в его пакете, если установлен. + val installed = try { + context.packageManager.getPackageInfo(pkg, 0) + true + } catch (e: Exception) { + false + } + if (installed) { + intent.setPackage(pkg) + try { + context.startActivity(intent) + return + } catch (e: Exception) { + Log.e("DeeplinkNavigator", "Не удалось открыть в $pkg", e) + // упадём в общий путь ниже (системный выбор / браузер) + } + } else { + Toast.makeText(context, "${service.displayName} не установлено", Toast.LENGTH_SHORT).show() + return + } + } + + // Обычные сервисы (или фолбэк) — системный выбор приложения. try { context.startActivity(Intent.createChooser(intent, "Открыть в...")) } catch (e: Exception) { diff --git a/app/src/main/java/com/radiola/domain/model/DeeplinkService.kt b/app/src/main/java/com/radiola/domain/model/DeeplinkService.kt index d70a4d0..291ef86 100644 --- a/app/src/main/java/com/radiola/domain/model/DeeplinkService.kt +++ b/app/src/main/java/com/radiola/domain/model/DeeplinkService.kt @@ -3,7 +3,10 @@ package com.radiola.domain.model enum class DeeplinkService( val serviceId: String, val displayName: String, - val searchUrlTemplate: String + val searchUrlTemplate: String, + // Пакет стороннего приложения: если задан — открываем поиск прямо в нём + // (setPackage), иначе через системный выбор «Открыть в...». + val packageName: String? = null ) { YANDEX("yandex", "Яндекс Музыка", "https://music.yandex.ru/search?text=%s"), VK("vk", "ВК Музыка", "https://vk.com/audio?q=%s"),