mirror of
https://github.com/home-assistant/android
synced 2024-09-19 16:11:37 +00:00
Allow opening of apps via notifications. (#1007)
This commit is contained in:
parent
e8efa495d1
commit
0a8c96d321
|
@ -6,15 +6,23 @@ import android.net.Uri
|
||||||
import io.homeassistant.companion.android.webview.WebViewActivity
|
import io.homeassistant.companion.android.webview.WebViewActivity
|
||||||
|
|
||||||
object NotificationActionContentHandler {
|
object NotificationActionContentHandler {
|
||||||
|
private const val APP_PREFIX = "app://"
|
||||||
|
|
||||||
fun openUri(context: Context, uri: String?, onComplete: () -> Unit = {}) {
|
fun openUri(context: Context, uri: String?, onComplete: () -> Unit = {}) {
|
||||||
if (!uri.isNullOrBlank()) {
|
if (!uri.isNullOrBlank()) {
|
||||||
val intent = if (UrlHandler.isAbsoluteUrl(uri)) {
|
val intent = when {
|
||||||
|
uri.startsWith(APP_PREFIX) -> {
|
||||||
|
context.packageManager.getLaunchIntentForPackage(uri.substringAfter(APP_PREFIX))
|
||||||
|
}
|
||||||
|
UrlHandler.isAbsoluteUrl(uri) -> {
|
||||||
Intent(Intent.ACTION_VIEW).apply {
|
Intent(Intent.ACTION_VIEW).apply {
|
||||||
data = Uri.parse(uri)
|
data = Uri.parse(uri)
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else -> {
|
||||||
WebViewActivity.newInstance(context, uri)
|
WebViewActivity.newInstance(context, uri)
|
||||||
}
|
}
|
||||||
|
} ?: WebViewActivity.newInstance(context)
|
||||||
|
|
||||||
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
||||||
context.startActivity(intent)
|
context.startActivity(intent)
|
||||||
|
|
Loading…
Reference in a new issue