I am trying to open the camera using a button, but I'm not getting it how do I make this button work? I Tried to declare it in variable but it's not working either.
package com.example.bohubrihiwithjetpack
import android.content.Intent
import android.content.pm.PackageManager
import android.os.Bundle
import android.provider.MediaStore
import android.widget.Button
import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import com.example.bohubrihiwithjetpack.compose.LearningCompose
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
}
}
fun checkCameraPermission() {
if (ContextCompat.checkSelfPermission(
this,
android.Manifest.permission.CAMERA
) == PackageManager.PERMISSION_GRANTED
) {
openCamera()
} else {
requestPermission()
}
}
private fun requestPermission() {
ActivityCompat.requestPermissions(
this, arrayOf(android.Manifest.permission.CAMERA),
1
)
}
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == 1) {
if (grantResults.size > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
openCamera()
} else {
Toast.makeText(this, "Permission Denied", Toast.LENGTH_SHORT).show()
}
}
}
fun openCamera() {
val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
startActivity(intent)
}
}
And This is the Compose Code, also I don't understand how this Compose works Like there is no id like XML. How do I make the widget work?
package com.example.bohubrihiwithjetpack.compose
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.padding
import androidx.compose.material.Button
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.core.content.ContextCompat.startActivity
import com.example.bohubrihiwithjetpack.MainActivity
import java.util.jar.Manifest
@Composable
fun LearningCompose(
modifier: Modifier = Modifier
) {
val context = LocalContext.current
Column {
Button(onClick = { MainActivity().checkCameraPermission() }, modifier.padding(10.dp)) {
Text(text = "Open Camera")
}
Button(onClick = { /*TODO*/ }, modifier.padding(10.dp)) {
Text(text = "Open Gallery")
}
Button(onClick = { /*TODO*/ }, modifier.padding(10.dp)) {
Text(text = "Open Browser")
}
}
}