|
1 | 1 | package dev.jeremyko.proximity_sensor |
2 | 2 |
|
3 | | -import android.annotation.SuppressLint |
4 | 3 | import android.content.Context |
5 | 4 | import android.hardware.Sensor |
6 | 5 | import android.hardware.SensorEvent |
7 | 6 | import android.hardware.SensorEventListener |
8 | 7 | import android.hardware.SensorManager |
9 | | -import android.os.Build |
10 | | -import android.os.PowerManager |
| 8 | +import io.flutter.plugin.common.BinaryMessenger |
11 | 9 | import io.flutter.plugin.common.EventChannel |
| 10 | +import java.io.IOException |
12 | 11 | import java.lang.UnsupportedOperationException |
13 | 12 |
|
14 | 13 | //////////////////////////////////////////////////////////////////////////////////////////////////// |
15 | 14 | class ProximityStreamHandler( |
16 | 15 | private val applicationContext: Context, |
| 16 | + private val messenger: BinaryMessenger |
17 | 17 | ): EventChannel.StreamHandler, SensorEventListener { |
18 | 18 |
|
19 | 19 | private var eventSink: EventChannel.EventSink? = null |
20 | 20 | private lateinit var sensorManager: SensorManager |
21 | 21 | private var proximitySensor: Sensor? = null |
22 | 22 |
|
23 | | - private lateinit var powerManager: PowerManager |
24 | | - private lateinit var wakeLock: PowerManager.WakeLock |
25 | | - |
26 | | - @SuppressLint("WakelockTimeout") |
27 | 23 | override fun onListen(arguments: Any?, events: EventChannel.EventSink?) { |
28 | 24 | eventSink = events |
29 | 25 | sensorManager = applicationContext.getSystemService(Context.SENSOR_SERVICE) as SensorManager |
30 | 26 | proximitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY) ?: |
31 | 27 | throw UnsupportedOperationException("proximity sensor unavailable") |
32 | 28 |
|
33 | 29 | sensorManager.registerListener(this, proximitySensor, SensorManager.SENSOR_DELAY_NORMAL) |
34 | | - powerManager = applicationContext.getSystemService(Context.POWER_SERVICE) as |
35 | | - PowerManager |
36 | | - |
37 | | - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { |
38 | | - wakeLock = powerManager.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "dev.jeremyko.proximity_sensor:lock") |
39 | | - if (!wakeLock.isHeld) { |
40 | | - wakeLock.acquire() |
41 | | - } |
42 | | - } |
43 | 30 | } |
44 | 31 |
|
45 | 32 | override fun onCancel(arguments: Any?) { |
46 | 33 | sensorManager.unregisterListener(this, proximitySensor) |
47 | | - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { |
48 | | - wakeLock.release() |
49 | | - } |
50 | 34 | } |
51 | 35 |
|
52 | 36 | override fun onSensorChanged(event: SensorEvent?) { |
|
0 commit comments