Allow opening of apps via notifications. (#1007)

This commit is contained in:
Justin Bassett 2020-10-05 08:44:36 -04:00 committed by GitHub
parent e8efa495d1
commit 0a8c96d321
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -6,15 +6,23 @@ import android.net.Uri
import io.homeassistant.companion.android.webview.WebViewActivity
object NotificationActionContentHandler {
private const val APP_PREFIX = "app://"
fun openUri(context: Context, uri: String?, onComplete: () -> Unit = {}) {
if (!uri.isNullOrBlank()) {
val intent = if (UrlHandler.isAbsoluteUrl(uri)) {
Intent(Intent.ACTION_VIEW).apply {
data = Uri.parse(uri)
val intent = when {
uri.startsWith(APP_PREFIX) -> {
context.packageManager.getLaunchIntentForPackage(uri.substringAfter(APP_PREFIX))
}
} else {
WebViewActivity.newInstance(context, uri)
}
UrlHandler.isAbsoluteUrl(uri) -> {
Intent(Intent.ACTION_VIEW).apply {
data = Uri.parse(uri)
}
}
else -> {
WebViewActivity.newInstance(context, uri)
}
} ?: WebViewActivity.newInstance(context)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
context.startActivity(intent)