First attempt at notifying at given time
This commit is contained in:
+4
-1
@@ -10,6 +10,7 @@ import Chart from './chart/chart'
|
||||
import Settings from './settings'
|
||||
import Stats from './stats'
|
||||
import {headerTitles as titles} from './labels'
|
||||
import setupNotifications from '../lib/notifications'
|
||||
|
||||
const isSymptomView = name => Object.keys(symptomViews).indexOf(name) > -1
|
||||
|
||||
@@ -60,4 +61,6 @@ export default class App extends Component {
|
||||
</View>
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setupNotifications()
|
||||
@@ -9,7 +9,6 @@ import { LocalDate } from 'js-joda'
|
||||
import styles from '../styles/index'
|
||||
import cycleModule from '../lib/cycle'
|
||||
import { getOrCreateCycleDay, bleedingDaysSortedByDate, fillWithDummyData, deleteAll } from '../db'
|
||||
import {NotificationsAndroid} from 'react-native-notifications'
|
||||
|
||||
const getCycleDayNumber = cycleModule().getCycleDayNumber
|
||||
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
import {tempReminderObservable} from '../local-storage'
|
||||
import { LocalTime, ChronoUnit } from 'js-joda'
|
||||
import {NotificationsAndroid} from 'react-native-notifications'
|
||||
|
||||
let stopCheckingTheTime = () => {}
|
||||
|
||||
export default function setupNotifications() {
|
||||
tempReminderObservable(reminder => {
|
||||
stopCheckingTheTime()
|
||||
if (reminder.enabled) {
|
||||
stopCheckingTheTime = notifyAt(reminder.time)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function notifyAt(time) {
|
||||
const id = setInterval(() => {
|
||||
const now = LocalTime.now().truncatedTo(ChronoUnit.MINUTES).toString()
|
||||
if (now === time) {
|
||||
NotificationsAndroid.localNotification({
|
||||
title: 'yo',
|
||||
body: 'much notification'
|
||||
})
|
||||
}
|
||||
}, 60 * 1000)
|
||||
return () => clearInterval(id)
|
||||
}
|
||||
Reference in New Issue
Block a user