package
com.example.newcanaryproject
import
android.app.Activity
import
android.content.Context
import
android.content.pm.ActivityInfo
import
android.hardware.camera2.CameraManager
import
android.net.ConnectivityManager
import
android.os.Build
import
android.os.Bundle
import
android.provider.Settings.*
import
android.widget.Toast
import
androidx.activity.ComponentActivity
import
androidx.activity.compose.setContent
import
androidx.annotation.RequiresApi
import
androidx.compose.foundation.layout.*
import
androidx.compose.material.*
import
androidx.compose.runtime.Composable
import
androidx.compose.runtime.mutableStateOf
import
androidx.compose.runtime.remember
import
androidx.compose.ui.Alignment
import
androidx.compose.ui.Modifier
import
androidx.compose.ui.graphics.Color
import
androidx.compose.ui.platform.LocalContext
import
androidx.compose.ui.text.TextStyle
import
androidx.compose.ui.text.font.FontFamily
import
androidx.compose.ui.text.font.FontWeight
import
androidx.compose.ui.text.style.TextAlign
import
androidx.compose.ui.unit.dp
import
androidx.compose.ui.unit.sp
import
androidx.core.content.ContextCompat.getSystemService
import
com.example.newcanaryproject.ui.theme.NewCanaryProjectTheme
import
com.example.newcanaryproject.ui.theme.greenColor
class
MainActivity : ComponentActivity() {
@RequiresApi
(Build.VERSION_CODES.M)
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContent {
NewCanaryProjectTheme {
Surface(
modifier = Modifier.fillMaxSize(), color = MaterialTheme.colors.background
) {
Scaffold(
topBar = {
TopAppBar(backgroundColor = greenColor,
title = {
Text(
text =
"GFG"
,
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
color = Color.White
)
})
}) {
torchApplication(LocalContext.current)
}
}
}
}
}
}
@Composable
fun torchApplication(context: Context) {
val torchStatus = remember {
mutableStateOf(
false
)
}
val torchMsg = remember {
mutableStateOf(
"Off"
)
}
Column(
modifier = Modifier
.fillMaxSize()
.padding(all =
30
.dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center,
) {
Text(
text =
"Torch is "
+ torchMsg.value,
color = Color.Black,
fontWeight = FontWeight.Bold,
fontFamily = FontFamily.Default,
fontSize =
20
.sp, modifier = Modifier.padding(
5
.dp)
)
Switch(checked = torchStatus.value, onCheckedChange = {
torchStatus.value = it
lateinit var cameraManager: CameraManager
lateinit var cameraID: String
cameraManager = context.getSystemService(Context.CAMERA_SERVICE) as CameraManager
try
{
cameraID = cameraManager.cameraIdList[
0
]
}
catch
(e: Exception) {
e.printStackTrace()
}
if
(torchStatus.value) {
try
{
if
(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
cameraManager.setTorchMode(cameraID,
true
)
Toast.makeText(context,
"Torch turned on.."
, Toast.LENGTH_LONG)
.show()
torchMsg.value =
"On"
}
}
catch
(e: Exception) {
e.printStackTrace()
}
}
else
{
try
{
if
(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
cameraManager.setTorchMode(cameraID,
false
)
Toast.makeText(context,
"Torch turned off.."
, Toast.LENGTH_SHORT)
.show()
torchMsg.value =
"Off"
}
}
catch
(e: Exception) {
e.printStackTrace()
}
}
})
}
}