First attempt at notifying at given time
This commit is contained in:
@@ -10,6 +10,7 @@ import Chart from './chart/chart'
|
|||||||
import Settings from './settings'
|
import Settings from './settings'
|
||||||
import Stats from './stats'
|
import Stats from './stats'
|
||||||
import {headerTitles as titles} from './labels'
|
import {headerTitles as titles} from './labels'
|
||||||
|
import setupNotifications from '../lib/notifications'
|
||||||
|
|
||||||
const isSymptomView = name => Object.keys(symptomViews).indexOf(name) > -1
|
const isSymptomView = name => Object.keys(symptomViews).indexOf(name) > -1
|
||||||
|
|
||||||
@@ -61,3 +62,5 @@ export default class App extends Component {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setupNotifications()
|
||||||
@@ -9,7 +9,6 @@ import { LocalDate } from 'js-joda'
|
|||||||
import styles from '../styles/index'
|
import styles from '../styles/index'
|
||||||
import cycleModule from '../lib/cycle'
|
import cycleModule from '../lib/cycle'
|
||||||
import { getOrCreateCycleDay, bleedingDaysSortedByDate, fillWithDummyData, deleteAll } from '../db'
|
import { getOrCreateCycleDay, bleedingDaysSortedByDate, fillWithDummyData, deleteAll } from '../db'
|
||||||
import {NotificationsAndroid} from 'react-native-notifications'
|
|
||||||
|
|
||||||
const getCycleDayNumber = cycleModule().getCycleDayNumber
|
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