From 0ef0e965ddca1099cb7a8e20ebb0e0cd14474452 Mon Sep 17 00:00:00 2001 From: andrekir Date: Fri, 5 Aug 2022 00:05:19 -0300 Subject: [PATCH] only use mlkit for playstore installs --- .../com/geeksville/mesh/android/ContextServices.kt | 10 ++++++++++ .../java/com/geeksville/mesh/ui/ChannelFragment.kt | 6 ++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/android/ContextServices.kt b/app/src/main/java/com/geeksville/mesh/android/ContextServices.kt index 8a9edf947..74b5b3329 100644 --- a/app/src/main/java/com/geeksville/mesh/android/ContextServices.kt +++ b/app/src/main/java/com/geeksville/mesh/android/ContextServices.kt @@ -44,6 +44,16 @@ fun Context.hasCompanionDeviceApi(): Boolean = fun Context.hasGps(): Boolean = packageManager.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS) +/** + * return app install source (sideload = null) + */ +fun Context.installSource(): String? { + return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) + packageManager.getInstallSourceInfo(packageName).installingPackageName + else + packageManager.getInstallerPackageName(packageName) +} + /** * return a list of the permissions we don't have */ diff --git a/app/src/main/java/com/geeksville/mesh/ui/ChannelFragment.kt b/app/src/main/java/com/geeksville/mesh/ui/ChannelFragment.kt index 232e8ca9f..a6a0153f2 100644 --- a/app/src/main/java/com/geeksville/mesh/ui/ChannelFragment.kt +++ b/app/src/main/java/com/geeksville/mesh/ui/ChannelFragment.kt @@ -19,13 +19,13 @@ import com.geeksville.analytics.DataPair import com.geeksville.android.GeeksvilleApplication import com.geeksville.android.Logging import com.geeksville.android.hideKeyboard -import com.geeksville.android.isGooglePlayAvailable import com.geeksville.mesh.AppOnlyProtos import com.geeksville.mesh.ChannelProtos import com.geeksville.mesh.ConfigProtos import com.geeksville.mesh.R import com.geeksville.mesh.android.getCameraPermissions import com.geeksville.mesh.android.hasCameraPermission +import com.geeksville.mesh.android.installSource import com.geeksville.mesh.databinding.ChannelFragmentBinding import com.geeksville.mesh.model.Channel import com.geeksville.mesh.model.ChannelOption @@ -284,7 +284,9 @@ class ChannelFragment : ScreenFragment("Channel"), Logging { } binding.scanButton.setOnClickListener { - if (isGooglePlayAvailable(requireContext())) { + val installSource = requireContext().installSource() + debug("Using scanner for installSource: $installSource") + if (installSource != null) { // only use ML Kit when install from PlayStore mlkitScan() } else { if (requireContext().hasCameraPermission()) {