initial commit - chats working
This commit is contained in:
78
app/src/main/java/com/mattintech/lchat/MainActivity.kt
Normal file
78
app/src/main/java/com/mattintech/lchat/MainActivity.kt
Normal file
@@ -0,0 +1,78 @@
|
||||
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
|
||||
|
||||
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")
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user