diff --git a/android/src/main/java/com/dumon/plugin/geolocation/DumonGeolocation.kt b/android/src/main/java/com/dumon/plugin/geolocation/DumonGeolocation.kt index 2f086d5..e2772da 100644 --- a/android/src/main/java/com/dumon/plugin/geolocation/DumonGeolocation.kt +++ b/android/src/main/java/com/dumon/plugin/geolocation/DumonGeolocation.kt @@ -1,11 +1,13 @@ package com.dumon.plugin.geolocation import android.Manifest +import android.content.pm.PackageManager import android.graphics.Color import android.os.Build import android.view.View import android.view.WindowInsetsController import android.view.WindowManager +import androidx.core.app.ActivityCompat import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat import com.getcapacitor.* @@ -125,15 +127,21 @@ class DumonGeolocation : Plugin() { @PluginMethod fun checkAndRequestPermissions(call: PluginCall) { - if (PermissionUtils.hasLocationAndWifiPermissions(context)) { - val result = JSObject().apply { - put("location", "granted") - put("wifi", "granted") - } - call.resolve(result) - } else { - requestAllPermissions(call, "checkAndRequestPermissions") + val locationStatus = PermissionUtils.mapPermissionResult( + ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) + ) + val wifiStatus = PermissionUtils.mapPermissionResult( + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) + ActivityCompat.checkSelfPermission(context, Manifest.permission.NEARBY_WIFI_DEVICES) + else + PackageManager.PERMISSION_GRANTED + ) + + val result = JSObject().apply { + put("location", locationStatus) + put("wifi", wifiStatus) } + call.resolve(result) } @PluginMethod diff --git a/android/src/main/java/com/dumon/plugin/geolocation/utils/PermissionUtils.kt b/android/src/main/java/com/dumon/plugin/geolocation/utils/PermissionUtils.kt index b4a3e24..fc62368 100644 --- a/android/src/main/java/com/dumon/plugin/geolocation/utils/PermissionUtils.kt +++ b/android/src/main/java/com/dumon/plugin/geolocation/utils/PermissionUtils.kt @@ -20,4 +20,8 @@ object PermissionUtils { coarseLocation == PackageManager.PERMISSION_GRANTED && nearbyWifi == PackageManager.PERMISSION_GRANTED } + + fun mapPermissionResult(result: Int): String { + return if (result == PackageManager.PERMISSION_GRANTED) "granted" else "denied" + } } \ No newline at end of file