From debeadb7071af3a3e85bc4b2794e7e3f310b97e5 Mon Sep 17 00:00:00 2001 From: Daniel Shokouhi Date: Wed, 16 Sep 2020 08:47:09 -0700 Subject: [PATCH] Hide NFC if the device reports it has no hardware (#941) * Hide NFC if the device reports it has no hardware * Add hardware check to webview activity --- .../companion/android/settings/SettingsFragment.kt | 7 ++++++- .../companion/android/webview/WebViewActivity.kt | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/homeassistant/companion/android/settings/SettingsFragment.kt b/app/src/main/java/io/homeassistant/companion/android/settings/SettingsFragment.kt index eb4adc679..6a9b8bc4a 100644 --- a/app/src/main/java/io/homeassistant/companion/android/settings/SettingsFragment.kt +++ b/app/src/main/java/io/homeassistant/companion/android/settings/SettingsFragment.kt @@ -1,5 +1,6 @@ package io.homeassistant.companion.android.settings +import android.content.pm.PackageManager import android.graphics.Color import android.os.Build import android.os.Bundle @@ -96,7 +97,11 @@ class SettingsFragment : PreferenceFragmentCompat(), SettingsView { } findPreference("nfc_tags")?.let { - it.isVisible = presenter.nfcEnabled() + val pm: PackageManager = requireContext().packageManager + if (pm.hasSystemFeature(PackageManager.FEATURE_NFC)) + it.isVisible = presenter.nfcEnabled() + else + it.isVisible = false it.onPreferenceClickListener = Preference.OnPreferenceClickListener { startActivity(NfcSetupActivity.newInstance(requireActivity())) true diff --git a/app/src/main/java/io/homeassistant/companion/android/webview/WebViewActivity.kt b/app/src/main/java/io/homeassistant/companion/android/webview/WebViewActivity.kt index a101d3971..53ff769c4 100644 --- a/app/src/main/java/io/homeassistant/companion/android/webview/WebViewActivity.kt +++ b/app/src/main/java/io/homeassistant/companion/android/webview/WebViewActivity.kt @@ -350,6 +350,8 @@ class WebViewActivity : AppCompatActivity(), io.homeassistant.companion.android. } } "config/get" -> { + val pm: PackageManager = context.packageManager + val hasNfc = pm.hasSystemFeature(PackageManager.FEATURE_NFC) val script = "externalBus(" + "${JSONObject( mapOf( @@ -359,7 +361,7 @@ class WebViewActivity : AppCompatActivity(), io.homeassistant.companion.android. "result" to JSONObject( mapOf( "hasSettingsScreen" to true, - "canWriteTag" to true, + "canWriteTag" to hasNfc, "hasExoPlayer" to true ) )