Skip to content

Commit 34c3fa7

Browse files
committed
Report alarm incident issued by motion sensor
1 parent 89d34e5 commit 34c3fa7

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

app/src/main/java/pl/rmakowiecki/smartalarmcore/AlarmController.kt

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ class AlarmController(
7070
onNext = {
7171
updateAlarmTriggerState(it)
7272
if (it == TRIGGERED) {
73-
reportBeamBreakIncident()
73+
reportAlarmIncident(AlarmTriggerReason.BEAM_BREAK_DETECTOR)
7474
}
7575
}
7676
)
@@ -83,15 +83,24 @@ class AlarmController(
8383
.registerForChanges()
8484
.applyIoSchedulers()
8585
.subscribeBy(
86-
onNext = { /*logD(it)*/ }
86+
onNext = {
87+
updateAlarmTriggerState(it)
88+
if (it == TRIGGERED) {
89+
reportAlarmIncident(AlarmTriggerReason.MOTION_SENSOR)
90+
}
91+
}
8792
)
8893
}
8994
}
9095

91-
private fun updateAlarmTriggerState(alarmTriggerState: AlarmTriggerState)
92-
= backendInteractor.updateAlarmState(alarmTriggerState)
96+
private fun updateAlarmTriggerState(alarmTriggerState: AlarmTriggerState) = backendInteractor
97+
.updateAlarmState(alarmTriggerState)
98+
.applyIoSchedulers()
99+
.subscribeBy(
100+
onSuccess = { logD("Updating trigger value on server successful") }
101+
)
93102

94-
private fun reportBeamBreakIncident() {
103+
private fun reportAlarmIncident(reason: AlarmTriggerReason) {
95104
val reportTimestamp = System.currentTimeMillis()
96105

97106
val cameraPhotoObservable = camera.capturePhoto()
@@ -100,7 +109,7 @@ class AlarmController(
100109
cameraPhotoObservable.subscribeBy(onNext = { logD("camera photo taken") })
101110

102111
backendInteractor
103-
.reportSecurityIncident(SecurityIncident(AlarmTriggerReason.BEAM_BREAK_DETECTOR, reportTimestamp))
112+
.reportSecurityIncident(SecurityIncident(reason, reportTimestamp))
104113
.flatMapObservable { incidentModel ->
105114
cameraPhotoObservable
106115
.flatMapSingle { (photo, photoNumber) ->

app/src/main/java/pl/rmakowiecki/smartalarmcore/remote/AlarmBackendContract.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ interface AlarmBackendContract {
1212
fun isLoggedInToBackend(): Single<Boolean>
1313
fun signInToBackend(): Single<Boolean>
1414
fun observeAlarmArmingState(): Observable<AlarmArmingState>
15-
fun updateAlarmState(alarmState: AlarmTriggerState)
15+
fun updateAlarmState(alarmState: AlarmTriggerState): Single<Boolean>
1616
fun reportSecurityIncident(securityIncident: SecurityIncident): Single<SecurityIncidentResponse>
1717
fun uploadIncidentPhoto(photoBytes: ByteArray, uniqueIncidentId: String, photoNumber: Int): Single<Boolean>
1818

0 commit comments

Comments
 (0)