Files
android-lchat/app/src/main/java/com/mattintech/lchat/MainActivity.kt

80 lines
2.7 KiB
Kotlin
Raw Normal View History

2025-07-03 17:52:05 -04:00
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
2025-07-03 21:13:23 -04:00
import dagger.hilt.android.AndroidEntryPoint
2025-07-03 17:52:05 -04:00
2025-07-03 21:13:23 -04:00
@AndroidEntryPoint
2025-07-03 17:52:05 -04:00
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")
}
}
}