package
com.example.newcanaryproject
import
android.content.Context
import
android.content.Context.BATTERY_SERVICE
import
android.content.Intent
import
android.os.BatteryManager
import
android.os.Build
import
android.os.Bundle
import
android.provider.Settings
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.ui.Alignment
import
androidx.compose.ui.Modifier
import
androidx.compose.ui.graphics.Color
import
androidx.compose.ui.platform.LocalContext
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
com.example.newcanaryproject.ui.theme.NewCanaryProjectTheme
import
com.example.newcanaryproject.ui.theme.greenColor
import
com.github.skydoves.colorpicker.compose.*
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
)
})
}) {
ControlBrightNess(LocalContext.current)
}
}
}
}
}
}
@RequiresApi
(Build.VERSION_CODES.M)
@Composable
fun ControlBrightNess(context: Context) {
Column(
modifier = Modifier
.fillMaxSize()
.padding(all =
30
.dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center,
) {
Button(onClick = {
val settingsCanWrite = hasWriteSettingsPermission(context)
if
(!settingsCanWrite) {
changeWriteSettingsPermission(context)
}
else
{
changeScreenBrightness(context,
1
)
}
}) {
Text(
text =
"Minimize BrightNess"
,
color = Color.White,
fontSize =
20
.sp,
fontWeight = FontWeight.Bold
)
}
Spacer(modifier = Modifier.height(
20
.dp))
Button(onClick = {
val settingsCanWrite = hasWriteSettingsPermission(context)
if
(!settingsCanWrite) {
changeWriteSettingsPermission(context)
}
else
{
changeScreenBrightness(context,
3500
)
}
}) {
Text(
text =
"Maximize BrightNess"
,
color = Color.White,
fontSize =
20
.sp,
fontWeight = FontWeight.Bold
)
}
}
}
@RequiresApi
(Build.VERSION_CODES.M)
fun hasWriteSettingsPermission(context: Context): Boolean {
var ret =
true
ret = Settings.System.canWrite(context)
return
ret
}
fun changeWriteSettingsPermission(context: Context) {
val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS)
context.startActivity(intent)
}
fun changeScreenBrightness(
context: Context,
screenBrightnessValue: Int
) {
Settings.System.putInt(
context.contentResolver,
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL
)
Settings.System.putInt(
context.contentResolver, Settings.System.SCREEN_BRIGHTNESS, screenBrightnessValue
)
}