LAFBrightnessActivity.kt raw
1 package io.github.domi04151309.alwayson.activities
2
3 import android.os.Bundle
4 import android.widget.SeekBar
5 import androidx.appcompat.widget.SwitchCompat
6 import androidx.core.content.edit
7 import io.github.domi04151309.alwayson.R
8 import io.github.domi04151309.alwayson.actions.alwayson.AlwaysOn
9 import io.github.domi04151309.alwayson.helpers.P
10
11 class LAFBrightnessActivity : BaseActivity() {
12 private lateinit var brightnessSwitch: SwitchCompat
13 private lateinit var seekBar: SeekBar
14
15 override fun onCreate(savedInstanceState: Bundle?) {
16 super.onCreate(savedInstanceState)
17 setContentView(R.layout.activity_brightness)
18 brightnessSwitch = findViewById(R.id.brightnessSwitch)
19 seekBar = findViewById(R.id.seekBar)
20 seekBar.progress = P.FORCE_BRIGHTNESS_VALUE_DEFAULT
21
22 seekBar.setOnSeekBarChangeListener(
23 object : SeekBar.OnSeekBarChangeListener {
24 override fun onProgressChanged(
25 seekBar: SeekBar,
26 progress: Int,
27 fromUser: Boolean,
28 ) {
29 // Turning this into a single statement will not work!
30 val attributes = window.attributes
31 attributes.screenBrightness = (progress / FULL_BRIGHTNESS).toFloat()
32 window.attributes = attributes
33 }
34
35 override fun onStartTrackingTouch(seekBar: SeekBar) {
36 // Do nothing.
37 }
38
39 override fun onStopTrackingTouch(seekBar: SeekBar) {
40 // Do nothing.
41 }
42 },
43 )
44 }
45
46 override fun onStart() {
47 super.onStart()
48 brightnessSwitch.isChecked = P.getPreferences(this).getBoolean(P.FORCE_BRIGHTNESS, P.FORCE_BRIGHTNESS_DEFAULT)
49 seekBar.progress = P.getPreferences(this).getInt(P.FORCE_BRIGHTNESS_VALUE, P.FORCE_BRIGHTNESS_VALUE_DEFAULT)
50 }
51
52 override fun onStop() {
53 super.onStop()
54 P.getPreferences(this)
55 .edit {
56 putBoolean(P.FORCE_BRIGHTNESS, brightnessSwitch.isChecked)
57 putInt(P.FORCE_BRIGHTNESS_VALUE, seekBar.progress)
58 }
59 AlwaysOn.finish()
60 }
61
62 companion object {
63 private const val FULL_BRIGHTNESS = 100.0
64 }
65 }
66