Guest User

Untitled

a guest
May 28th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. class LightManager(context: Context) : SensorEventListener {
  2.  
  3. private val sensorManager: SensorManager? = context.getSystemService(Context.SENSOR_SERVICE) as SensorManager?
  4. private val lightSensor: Sensor?
  5. private var handlerThread: HandlerThread? = null
  6. val lightValue: BehaviorSubject<Int> = BehaviorSubject.create<Int>()
  7.  
  8. init {
  9. this.lightSensor = sensorManager?.getDefaultSensor(Sensor.TYPE_LIGHT)
  10. this.handlerThread = HandlerThread(LightManager::class.java.simpleName)
  11. this.handlerThread?.start()
  12. val handler = Handler(this.handlerThread?.looper)
  13. this.sensorManager?.registerListener(this, this.lightSensor, SensorManager.SENSOR_DELAY_NORMAL, handler)
  14. }
  15.  
  16. fun onStop() {
  17. sensorManager?.unregisterListener(this)
  18. this.handlerThread?.takeIf { it.isAlive }?.quitSafely()
  19. }
  20.  
  21. override fun onAccuracyChanged(p0: Sensor?, p1: Int) = Unit
  22.  
  23. override fun onSensorChanged(event: SensorEvent?): Unit = event?.values?.get(0)?.toInt()?.let {
  24. this.lightValue.onNext(it)
  25. } ?: kotlin.run { }
  26.  
  27. }
Add Comment
Please, Sign In to add comment