expo keep awake
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { useFocusEffect } from '@react-navigation/native'
|
||||
import { CameraView, useCameraPermissions } from 'expo-camera'
|
||||
import { activateKeepAwakeAsync, deactivateKeepAwake } from 'expo-keep-awake'
|
||||
import * as FileSystem from 'expo-file-system'
|
||||
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||
import { BackHandler, Text, TouchableOpacity, View } from 'react-native'
|
||||
@@ -22,6 +23,7 @@ import CreateLyricsHeader from '../Writing/components/CreateLyricsHeader'
|
||||
const TIME_BEFORE_INCREMENT_MS = 20000 // 20s
|
||||
const COUNTDOWN_SECONDS = 10
|
||||
const LOG_PREFIX = '[RecordPlayback]'
|
||||
const KEEP_AWAKE_TAG = 'record-playback'
|
||||
const log =
|
||||
typeof __DEV__ === 'undefined' || __DEV__
|
||||
? (...args) => console.log(LOG_PREFIX, ...args)
|
||||
@@ -97,6 +99,25 @@ const RecordPlayback = ({ route }) => {
|
||||
isPausedRef.current = isPaused
|
||||
}, [isPaused])
|
||||
|
||||
useEffect(() => {
|
||||
const shouldKeepAwake = isPreparing || isRecording
|
||||
const updateKeepAwake = async () => {
|
||||
try {
|
||||
if (shouldKeepAwake) {
|
||||
await activateKeepAwakeAsync(KEEP_AWAKE_TAG)
|
||||
} else {
|
||||
await deactivateKeepAwake(KEEP_AWAKE_TAG)
|
||||
}
|
||||
} catch (_) { }
|
||||
}
|
||||
void updateKeepAwake()
|
||||
return () => {
|
||||
try {
|
||||
void deactivateKeepAwake(KEEP_AWAKE_TAG)
|
||||
} catch (_) { }
|
||||
}
|
||||
}, [isPreparing, isRecording])
|
||||
|
||||
// Removed AppState listener as it was too aggressive.
|
||||
// We now use duration validation at the end of recording.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user