Переглянути джерело

Asking for permission in a nice way

Thomas Chef 3 роки тому
батько
коміт
deefa192d9

+ 17 - 0
.idea/deploymentTargetDropDown.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="deploymentTargetDropDown">
+    <runningDeviceTargetSelectedWithDropDown>
+      <Target>
+        <type value="RUNNING_DEVICE_TARGET" />
+        <deviceKey>
+          <Key>
+            <type value="SERIAL_NUMBER" />
+            <value value="adb-y55x59fuozusvcbu-8Fp8GF._adb-tls-connect._tcp." />
+          </Key>
+        </deviceKey>
+      </Target>
+    </runningDeviceTargetSelectedWithDropDown>
+    <timeTargetWasSelectedWithDropDown value="2022-07-02T09:24:33.875355Z" />
+  </component>
+</project>

+ 1 - 1
app/build.gradle

@@ -8,7 +8,7 @@ android {
 
     defaultConfig {
         applicationId "com.flacksta.chef.journeygpstracker"
-        minSdk 25
+        minSdk 29
         targetSdk 32
         versionCode 1
         versionName "1.0"

+ 33 - 0
app/src/main/java/com/flacksta/chef/journeygpstracker/MainScreenActivity.kt

@@ -1,8 +1,13 @@
 package com.flacksta.chef.journeygpstracker
 
+import android.Manifest
+import android.content.pm.PackageManager
 import android.os.Bundle
+import android.util.Log
 import android.view.MenuItem
+import androidx.activity.result.contract.ActivityResultContracts
 import androidx.appcompat.app.AppCompatActivity
+import androidx.core.content.ContextCompat
 import androidx.fragment.app.Fragment
 import com.flacksta.chef.journeygpstracker.databinding.ActivityMainScreenBinding
 import com.google.android.material.bottomnavigation.BottomNavigationView
@@ -11,6 +16,7 @@ class MainScreenActivity : AppCompatActivity() {
 
     //var mainBinding: ActivityMainBinding
     private lateinit var binding: ActivityMainScreenBinding
+    private val TAG: String = "MainScreenActivity"
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
@@ -34,6 +40,33 @@ class MainScreenActivity : AppCompatActivity() {
             true
         }
         loadFragment(HomeFragment())
+
+        val locationPermissionRequest = registerForActivityResult(
+                ActivityResultContracts.RequestMultiplePermissions()
+        ) { permissions ->
+            when {
+                permissions.getOrDefault(Manifest.permission.ACCESS_FINE_LOCATION, false) -> {
+                    Log.i(TAG,"Fine permission granted")
+                }
+                permissions.getOrDefault(Manifest.permission.ACCESS_COARSE_LOCATION, false) -> {
+                    Log.i(TAG,"Only Coarse permission granted")
+                } else -> {
+                Log.i(TAG,"No Permission granted")
+            }
+            }
+        }
+
+        if( ContextCompat.checkSelfPermission(
+                        this,
+                        Manifest.permission.ACCESS_FINE_LOCATION
+                ) != PackageManager.PERMISSION_GRANTED ) {
+                locationPermissionRequest.launch(arrayOf(
+                        Manifest.permission.ACCESS_FINE_LOCATION,
+                        Manifest.permission.ACCESS_COARSE_LOCATION))
+        }
+
+
+
     }
 
     private fun loadFragment(fragment: Fragment) {