Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class LightManager(context: Context) : SensorEventListener {
- private val sensorManager: SensorManager? = context.getSystemService(Context.SENSOR_SERVICE) as SensorManager?
- private val lightSensor: Sensor?
- private var handlerThread: HandlerThread? = null
- val lightValue: BehaviorSubject<Int> = BehaviorSubject.create<Int>()
- init {
- this.lightSensor = sensorManager?.getDefaultSensor(Sensor.TYPE_LIGHT)
- this.handlerThread = HandlerThread(LightManager::class.java.simpleName)
- this.handlerThread?.start()
- val handler = Handler(this.handlerThread?.looper)
- this.sensorManager?.registerListener(this, this.lightSensor, SensorManager.SENSOR_DELAY_NORMAL, handler)
- }
- fun onStop() {
- sensorManager?.unregisterListener(this)
- this.handlerThread?.takeIf { it.isAlive }?.quitSafely()
- }
- override fun onAccuracyChanged(p0: Sensor?, p1: Int) = Unit
- override fun onSensorChanged(event: SensorEvent?): Unit = event?.values?.get(0)?.toInt()?.let {
- this.lightValue.onNext(it)
- } ?: kotlin.run { }
- }
Add Comment
Please, Sign In to add comment