Skip to content

Commit

Permalink
Add autoStart option for all sensor state methods, Update README to…
Browse files Browse the repository at this point in the history
… include Significant Motion sensor's state method, and remove `TYPE_ALL` sensor from SensorType
  • Loading branch information
shubhamsinghmutualmobile committed Jun 10, 2023
1 parent 18a1a64 commit 104b637
Show file tree
Hide file tree
Showing 32 changed files with 132 additions and 21 deletions.
5 changes: 1 addition & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ This library provides a convenience wrapper over the [Sensor APIs](https://devel
## Demo ❤️
![Screen Recording 2023-04-03 at 1 00 08 PM](https://user-images.githubusercontent.com/89389061/229441943-6339d18f-c704-4d92-9fe8-28c2fd94fdeb.gif)

## WIP 🚧
This library is a work-in-progress and is subject to major changes. Our team is working hard to get it stable as soon as possible. Thank you for your patience 🌺

## Usage 🚀
### Install dependency 📲
#### Kotlin `build.gradle.kts (:module-name)`
Expand Down Expand Up @@ -65,7 +62,7 @@ Ambient Temperature | ✅️ | rememberAmbientTemperatureSensorState()
Magnetic Field (Uncalibrated) | ✅️️ | rememberUncalibratedMagneticFieldSensorState()
GameRotation Vector | ✅️ | rememberGameRotationVectorSensorState()
Gyroscope (Uncalibrated) | ✅️ | rememberUncalibratedGyroscopeSensorState()
Significant Motion | | N/A
Significant Motion | | rememberSignificantMotionSensorState(onMotionEvent = {})
Step Detector | ✅️ | rememberStepDetectorSensorState()
Step Counter | ✅️ | rememberStepCounterSensorState()
Geomagnetic Rotation Vector | ✅️️ | rememberGeomagneticRotationVectorSensorState()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,18 +67,22 @@ class AccelerometerSensorState internal constructor(

/**
* Creates and [remember]s an instance of [AccelerometerSensorState].
* @param autoStart Start listening to sensor events as soon as sensor state is initialised.
* Defaults to true.
* @param sensorDelay The rate at which the raw sensor data should be received.
* Defaults to [SensorDelay.Normal].
* @param onError Callback invoked on every error state.
*/
@Composable
fun rememberAccelerometerSensorState(
autoStart: Boolean = true,
sensorDelay: SensorDelay = SensorDelay.Normal,
onError: (throwable: Throwable) -> Unit = {}
): AccelerometerSensorState {
val sensorState = rememberSensorState(
sensorType = SensorType.Accelerometer,
sensorDelay = sensorDelay,
autoStart = autoStart,
onError = onError
)
val accelerometerSensorState = remember { mutableStateOf(AccelerometerSensorState()) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,18 +57,22 @@ class AmbientTemperatureSensorState internal constructor(

/**
* Creates and [remember]s instance of [AmbientTemperatureSensorState].
* @param autoStart Start listening to sensor events as soon as sensor state is initialised.
* Defaults to true.
* @param sensorDelay The rate at which the raw sensor data should be received.
* Defaults to [SensorDelay.Normal].
* @param onError Callback invoked on every error state.
*/
@Composable
fun rememberAmbientTemperatureSensorState(
autoStart: Boolean = true,
sensorDelay: SensorDelay = SensorDelay.Normal,
onError: (throwable: Throwable) -> Unit = {}
): AmbientTemperatureSensorState {
val sensorState = rememberSensorState(
sensorType = SensorType.AmbientTemperature,
sensorDelay = sensorDelay,
autoStart = autoStart,
onError = onError
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,18 +66,22 @@ class GameRotationVectorSensorState internal constructor(

/**
* Creates and [remember]s instance of [GameRotationVectorSensorState].
* @param autoStart Start listening to sensor events as soon as sensor state is initialised.
* Defaults to true.
* @param sensorDelay The rate at which the raw sensor data should be received.
* Defaults to [SensorDelay.Game].
* @param onError Callback invoked on every error state.
*/
@Composable
fun rememberGameRotationVectorSensorState(
autoStart: Boolean = true,
sensorDelay: SensorDelay = SensorDelay.Game,
onError: (throwable: Throwable) -> Unit = {}
): GameRotationVectorSensorState {
val sensorState = rememberSensorState(
sensorType = SensorType.GameRotationVector,
sensorDelay = sensorDelay,
autoStart = autoStart,
onError = onError
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,18 +67,22 @@ class GeomagneticRotationVectorSensorState internal constructor(

/**
* Creates and [remember]s instance of [GeomagneticRotationVectorSensorState].
* @param autoStart Start listening to sensor events as soon as sensor state is initialised.
* Defaults to true.
* @param sensorDelay The rate at which the raw sensor data should be received.
* Defaults to [SensorDelay.Normal].
* @param onError Callback invoked on every error state.
*/
@Composable
fun rememberGeomagneticRotationVectorSensorState(
autoStart: Boolean = true,
sensorDelay: SensorDelay = SensorDelay.Normal,
onError: (throwable: Throwable) -> Unit = {}
): GeomagneticRotationVectorSensorState {
val sensorState = rememberSensorState(
sensorType = SensorType.GeomagneticRotationVector,
sensorDelay = sensorDelay,
autoStart = autoStart,
onError = onError
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,18 +67,22 @@ class GravitySensorState internal constructor(

/**
* Creates and [remember]s an instance of [GravitySensorState].
* @param autoStart Start listening to sensor events as soon as sensor state is initialised.
* Defaults to true.
* @param sensorDelay The rate at which the raw sensor data should be received.
* Defaults to [SensorDelay.Normal].
* @param onError Callback invoked on every error state.
*/
@Composable
fun rememberGravitySensorState(
autoStart: Boolean = true,
sensorDelay: SensorDelay = SensorDelay.Normal,
onError: (throwable: Throwable) -> Unit = {}
): GravitySensorState {
val sensorState = rememberSensorState(
sensorType = SensorType.Gravity,
sensorDelay = sensorDelay,
autoStart = autoStart,
onError = onError
)
val gravitySensorState = remember { mutableStateOf(GravitySensorState()) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,18 +65,22 @@ class GyroscopeSensorState internal constructor(

/**
* Creates and [remember]s an instance of [GyroscopeSensorState].
* @param autoStart Start listening to sensor events as soon as sensor state is initialised.
* Defaults to true.
* @param sensorDelay The rate at which the raw sensor data should be received.
* Defaults to [SensorDelay.Normal].
* @param onError Callback invoked on every error state.
*/
@Composable
fun rememberGyroscopeSensorState(
autoStart: Boolean = true,
sensorDelay: SensorDelay = SensorDelay.Normal,
onError: (throwable: Throwable) -> Unit = {}
): GyroscopeSensorState {
val sensorState = rememberSensorState(
sensorType = SensorType.Gyroscope,
sensorDelay = sensorDelay,
autoStart = autoStart,
onError = onError
)
val gyroscopeSensorState = remember { mutableStateOf(GyroscopeSensorState()) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,19 +89,23 @@ class HeadTrackerSensorState internal constructor(

/**
* Creates and [remember]s an instance of [HeadTrackerSensorState].
* @param autoStart Start listening to sensor events as soon as sensor state is initialised.
* Defaults to true.
* @param sensorDelay The rate at which the raw sensor data should be received.
* Defaults to [SensorDelay.Normal].
* @param onError Callback invoked on every error state.
*/
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
@Composable
fun rememberHeadTrackerSensorState(
autoStart: Boolean = true,
sensorDelay: SensorDelay = SensorDelay.Normal,
onError: (throwable: Throwable) -> Unit = {}
): HeadTrackerSensorState {
val sensorState = rememberSensorState(
sensorType = SensorType.HeadTracker,
sensorDelay = sensorDelay,
autoStart = autoStart,
onError = onError
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,19 +65,22 @@ class HeadingSensorState internal constructor(

/**
* Creates and [remember]s an instance of [HeadingSensorState].
*
* @param sensorDelay The rate at which the raw sensor data should be
* received. Defaults to [SensorDelay.Normal].
* @param autoStart Start listening to sensor events as soon as sensor state is initialised.
* Defaults to true.
* @param sensorDelay The rate at which the raw sensor data should be received. Defaults to
* [SensorDelay.Normal].
* @param onError Callback invoked on every error state.
*/
@Composable
fun rememberHeadingSensorState(
autoStart: Boolean = true,
sensorDelay: SensorDelay = SensorDelay.Normal,
onError: (throwable: Throwable) -> Unit = {}
): HeadingSensorState {
val sensorState = rememberSensorState(
sensorType = SensorType.Heading,
sensorDelay = sensorDelay,
autoStart = autoStart,
onError = onError
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,19 +68,23 @@ class HeartBeatSensorState internal constructor(

/**
* Creates and [remember]s an instance of [HeartBeatSensorState].
* @param autoStart Start listening to sensor events as soon as sensor state is initialised.
* Defaults to true.
* @param sensorDelay The rate at which the raw sensor data should be received.
* Defaults to [SensorDelay.Normal].
* @param onError Callback invoked on every error state.
*/
@RequiresApi(Build.VERSION_CODES.N)
@Composable
fun rememberHeartBeatSensorState(
autoStart: Boolean = true,
sensorDelay: SensorDelay = SensorDelay.Normal,
onError: (throwable: Throwable) -> Unit = {}
): HeartBeatSensorState {
val sensorState = rememberSensorState(
sensorType = SensorType.HeartBeat,
sensorDelay = sensorDelay,
autoStart = autoStart,
onError = onError
)
val confidenceSensorState = remember { mutableStateOf(HeartBeatSensorState()) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,18 +58,22 @@ class HeartRateSensorState internal constructor(

/**
* Creates and [remember]s an instance of [HeartRateSensorState].
* @param autoStart Start listening to sensor events as soon as sensor state is initialised.
* Defaults to true.
* @param sensorDelay The rate at which the raw sensor data should be received.
* Defaults to [SensorDelay.Normal].
* @param onError Callback invoked on every error state.
*/
@Composable
fun rememberHeartRateSensorState(
autoStart: Boolean = true,
sensorDelay: SensorDelay = SensorDelay.Normal,
onError: (throwable: Throwable) -> Unit = {}
): HeartRateSensorState {
val sensorState = rememberSensorState(
sensorType = SensorType.HeartRate,
sensorDelay = sensorDelay,
autoStart = autoStart,
onError = onError
)
val heartRateSensorState = remember { mutableStateOf(HeartRateSensorState()) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,19 +62,23 @@ class HingeAngleSensorState internal constructor(

/**
* Creates and [remember]s an instance of [HingeAngleSensorState].
* @param autoStart Start listening to sensor events as soon as sensor state is initialised.
* Defaults to true.
* @param sensorDelay The rate at which the raw sensor data should be received.
* Defaults to [SensorDelay.Normal].
* @param onError Callback invoked on every error state.
*/
@RequiresApi(Build.VERSION_CODES.R)
@Composable
fun rememberHingeAngleSensorState(
autoStart: Boolean = true,
sensorDelay: SensorDelay = SensorDelay.Normal,
onError: (throwable: Throwable) -> Unit = {}
): HingeAngleSensorState {
val sensorState = rememberSensorState(
sensorType = SensorType.HingeAngle,
sensorDelay = sensorDelay,
autoStart = autoStart,
onError = onError
)
val hingeAngleSensorState = remember { mutableStateOf(HingeAngleSensorState()) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,18 +58,22 @@ class LightSensorState internal constructor(

/**
* Creates and [remember]s an instance of [LightSensorState].
* @param autoStart Start listening to sensor events as soon as sensor state is initialised.
* Defaults to true.
* @param sensorDelay The rate at which the raw sensor data should be received.
* Defaults to [SensorDelay.Normal].
* @param onError Callback invoked on every error state.
*/
@Composable
fun rememberLightSensorState(
autoStart: Boolean = true,
sensorDelay: SensorDelay = SensorDelay.Normal,
onError: (throwable: Throwable) -> Unit = {}
): LightSensorState {
val sensorState = rememberSensorState(
sensorType = SensorType.Light,
sensorDelay = sensorDelay,
autoStart = autoStart,
onError = onError
)
val lightSensorState = remember { mutableStateOf(LightSensorState()) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,18 +81,22 @@ class LimitedAxesAccelerometerSensorState internal constructor(

/**
* Creates and [remember]s an instance of [LimitedAxesAccelerometerSensorState].
* @param autoStart Start listening to sensor events as soon as sensor state is initialised.
* Defaults to true.
* @param sensorDelay The rate at which the raw sensor data should be received.
* Defaults to [SensorDelay.Normal].
* @param onError Callback invoked on every error state.
*/
@Composable
fun rememberLimitedAxesAccelerometerSensorState(
autoStart: Boolean = true,
sensorDelay: SensorDelay = SensorDelay.Normal,
onError: (throwable: Throwable) -> Unit = {}
): LimitedAxesAccelerometerSensorState {
val sensorState = rememberSensorState(
sensorType = SensorType.AccelerometerLimitedAxes,
sensorDelay = sensorDelay,
autoStart = autoStart,
onError = onError
)
val accelerometerSensorState =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,19 +85,23 @@ class LimitedAxesGyroscopeSensorState internal constructor(

/**
* Creates and [remember]s an instance of [LimitedAxesGyroscopeSensorState].
* @param autoStart Start listening to sensor events as soon as sensor state is initialised.
* Defaults to true.
* @param sensorDelay The rate at which the raw sensor data should be received.
* Defaults to [SensorDelay.Normal].
* @param onError Callback invoked on every error state.
*/
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
@Composable
fun rememberLimitedAxesGyroscopeSensorState(
autoStart: Boolean = true,
sensorDelay: SensorDelay = SensorDelay.Normal,
onError: (throwable: Throwable) -> Unit = {}
): LimitedAxesGyroscopeSensorState {
val sensorState = rememberSensorState(
sensorType = SensorType.GyroscopeLimitedAxes,
sensorDelay = sensorDelay,
autoStart = autoStart,
onError = onError
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,19 +69,23 @@ class LinearAccelerationSensorState internal constructor(

/**
* Creates and [remember]s an instance of [LinearAccelerationSensorState].
* @param autoStart Start listening to sensor events as soon as sensor state is initialised.
* Defaults to true.
* @param sensorDelay The rate at which the raw sensor data should be received.
* Defaults to [SensorDelay.Normal].
* @param onError Callback invoked on every error state.
*/
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
@Composable
fun rememberLinearAccelerationSensorState(
autoStart: Boolean = true,
sensorDelay: SensorDelay = SensorDelay.Normal,
onError: (throwable: Throwable) -> Unit = {}
): LinearAccelerationSensorState {
val sensorState = rememberSensorState(
sensorType = SensorType.LinearAcceleration,
sensorDelay = sensorDelay,
autoStart = autoStart,
onError = onError
)
val linearAccelerationSensorState = remember { mutableStateOf(LinearAccelerationSensorState()) }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,19 +62,23 @@ class LowLatencyOffBodyDetectSensorState internal constructor(

/**
* Creates and [remember]s an instance of [LowLatencyOffBodyDetectSensorState].
* @param autoStart Start listening to sensor events as soon as sensor state is initialised.
* Defaults to true.
* @param sensorDelay The rate at which the raw sensor data should be received.
* Defaults to [SensorDelay.Normal].
* @param onError Callback invoked on every error state.
*/
@RequiresApi(Build.VERSION_CODES.O)
@Composable
fun rememberLowLatencyOffBodyDetectSensorState(
autoStart: Boolean = true,
sensorDelay: SensorDelay = SensorDelay.Normal,
onError: (throwable: Throwable) -> Unit = {}
): LowLatencyOffBodyDetectSensorState {
val sensorState = rememberSensorState(
sensorType = SensorType.LowLatencyOffBodyDetect,
sensorDelay = sensorDelay,
autoStart = autoStart,
onError = onError
)
val lowLatencyOffBodyDetectSensorState =
Expand Down
Loading

0 comments on commit 104b637

Please sign in to comment.