import
android.content.Context
import
android.content.Intent
import
android.os.Build
import
android.os.Bundle
import
android.provider.Settings
import
android.widget.Button
import
androidx.annotation.RequiresApi
import
androidx.appcompat.app.AppCompatActivity
class
MainActivity : AppCompatActivity() {
@RequiresApi
(Build.VERSION_CODES.M)
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val turnOffScreenButton: Button = findViewById(R.id.turn_off_screen_button)
turnOffScreenButton.setOnClickListener {
val context = applicationContext
val settingsCanWrite = hasWriteSettingsPermission(context)
if
(!settingsCanWrite) {
changeWriteSettingsPermission(context)
}
else
{
changeScreenBrightness(context,
1
)
}
}
val turnOnScreenButton: Button = findViewById(R.id.turn_on_screen_button)
turnOnScreenButton.setOnClickListener {
val context = applicationContext
val settingsCanWrite = hasWriteSettingsPermission(context)
if
(!settingsCanWrite) {
changeWriteSettingsPermission(context)
}
else
{
changeScreenBrightness(context,
255
)
}
}
}
@RequiresApi
(Build.VERSION_CODES.M)
private
fun hasWriteSettingsPermission(context: Context): Boolean {
var ret =
true
ret = Settings.System.canWrite(context)
return
ret
}
private
fun changeWriteSettingsPermission(context: Context) {
val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS)
context.startActivity(intent)
}
private
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
)
}
}