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