80 lines
2.7 KiB
Kotlin
80 lines
2.7 KiB
Kotlin
package com.mattintech.lchat
|
|
|
|
import android.Manifest
|
|
import android.util.Log
|
|
import android.content.pm.PackageManager
|
|
import android.os.Build
|
|
import android.os.Bundle
|
|
import androidx.activity.result.contract.ActivityResultContracts
|
|
import androidx.appcompat.app.AppCompatActivity
|
|
import androidx.core.content.ContextCompat
|
|
import com.google.android.material.snackbar.Snackbar
|
|
import com.mattintech.lchat.databinding.ActivityMainBinding
|
|
import com.mattintech.lchat.utils.LOG_PREFIX
|
|
import dagger.hilt.android.AndroidEntryPoint
|
|
|
|
@AndroidEntryPoint
|
|
class MainActivity : AppCompatActivity() {
|
|
|
|
companion object {
|
|
private const val TAG = LOG_PREFIX + "MainActivity:"
|
|
}
|
|
|
|
private lateinit var binding: ActivityMainBinding
|
|
|
|
private val locationPermissionRequest = registerForActivityResult(
|
|
ActivityResultContracts.RequestMultiplePermissions()
|
|
) { permissions ->
|
|
when {
|
|
permissions.getOrDefault(Manifest.permission.ACCESS_FINE_LOCATION, false) -> {
|
|
Log.d(TAG, "Location permission granted")
|
|
}
|
|
else -> {
|
|
Snackbar.make(
|
|
binding.root,
|
|
getString(R.string.permission_required),
|
|
Snackbar.LENGTH_LONG
|
|
).show()
|
|
}
|
|
}
|
|
}
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
super.onCreate(savedInstanceState)
|
|
Log.d(TAG, "onCreate")
|
|
binding = ActivityMainBinding.inflate(layoutInflater)
|
|
setContentView(binding.root)
|
|
|
|
setSupportActionBar(binding.toolbar)
|
|
checkPermissions()
|
|
}
|
|
|
|
private fun checkPermissions() {
|
|
val permissionsToRequest = mutableListOf<String>()
|
|
|
|
if (ContextCompat.checkSelfPermission(
|
|
this,
|
|
Manifest.permission.ACCESS_FINE_LOCATION
|
|
) != PackageManager.PERMISSION_GRANTED
|
|
) {
|
|
permissionsToRequest.add(Manifest.permission.ACCESS_FINE_LOCATION)
|
|
}
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
|
if (ContextCompat.checkSelfPermission(
|
|
this,
|
|
Manifest.permission.NEARBY_WIFI_DEVICES
|
|
) != PackageManager.PERMISSION_GRANTED
|
|
) {
|
|
permissionsToRequest.add(Manifest.permission.NEARBY_WIFI_DEVICES)
|
|
}
|
|
}
|
|
|
|
if (permissionsToRequest.isNotEmpty()) {
|
|
Log.d(TAG, "Requesting permissions: $permissionsToRequest")
|
|
locationPermissionRequest.launch(permissionsToRequest.toTypedArray())
|
|
} else {
|
|
Log.d(TAG, "All permissions already granted")
|
|
}
|
|
}
|
|
} |