mirror of
https://github.com/advplyr/audiobookshelf-app.git
synced 2025-08-04 10:04:39 +02:00
Fix:iOS sleep timer chapter end #291
This commit is contained in:
parent
77d0974782
commit
03a47b06ee
3 changed files with 30 additions and 17 deletions
|
@ -134,24 +134,26 @@ public class AbsAudioPlayer: CAPPlugin {
|
|||
@objc func setSleepTimer(_ call: CAPPluginCall) {
|
||||
guard let timeString = call.getString("time") else { return call.resolve([ "success": false ]) }
|
||||
guard let time = Int(timeString) else { return call.resolve([ "success": false ]) }
|
||||
let timeSeconds = time / 1000
|
||||
|
||||
NSLog("chapter time: \(call.getBool("isChapterTime", false))")
|
||||
|
||||
if call.getBool("isChapterTime", false) {
|
||||
let timeToPause = time / 1000 - Int(PlayerHandler.getCurrentTime() ?? 0)
|
||||
let timeToPause = timeSeconds - Int(PlayerHandler.getCurrentTime() ?? 0)
|
||||
if timeToPause < 0 { return call.resolve([ "success": false ]) }
|
||||
|
||||
NSLog("oof \(timeToPause)")
|
||||
|
||||
PlayerHandler.sleepTimerChapterStopTime = timeSeconds
|
||||
PlayerHandler.remainingSleepTime = timeToPause
|
||||
return call.resolve([ "success": true ])
|
||||
}
|
||||
|
||||
PlayerHandler.remainingSleepTime = time / 1000
|
||||
PlayerHandler.sleepTimerChapterStopTime = nil
|
||||
PlayerHandler.remainingSleepTime = timeSeconds
|
||||
call.resolve([ "success": true ])
|
||||
}
|
||||
@objc func cancelSleepTimer(_ call: CAPPluginCall) {
|
||||
PlayerHandler.remainingSleepTime = nil
|
||||
PlayerHandler.sleepTimerChapterStopTime = nil
|
||||
call.resolve()
|
||||
}
|
||||
@objc func getSleepTimerTime(_ call: CAPPluginCall) {
|
||||
|
|
|
@ -9,12 +9,12 @@ install! 'cocoapods', :disable_input_output_paths => true
|
|||
def capacitor_pods
|
||||
pod 'Capacitor', :path => '../../node_modules/@capacitor/ios'
|
||||
pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios'
|
||||
pod 'CapacitorApp', :path => '..\..\node_modules\@capacitor\app'
|
||||
pod 'CapacitorDialog', :path => '..\..\node_modules\@capacitor\dialog'
|
||||
pod 'CapacitorHaptics', :path => '..\..\node_modules\@capacitor\haptics'
|
||||
pod 'CapacitorNetwork', :path => '..\..\node_modules\@capacitor\network'
|
||||
pod 'CapacitorStatusBar', :path => '..\..\node_modules\@capacitor\status-bar'
|
||||
pod 'CapacitorStorage', :path => '..\..\node_modules\@capacitor\storage'
|
||||
pod 'CapacitorApp', :path => '../../node_modules/@capacitor/app'
|
||||
pod 'CapacitorDialog', :path => '../../node_modules/@capacitor/dialog'
|
||||
pod 'CapacitorHaptics', :path => '../../node_modules/@capacitor/haptics'
|
||||
pod 'CapacitorNetwork', :path => '../../node_modules/@capacitor/network'
|
||||
pod 'CapacitorStatusBar', :path => '../../node_modules/@capacitor/status-bar'
|
||||
pod 'CapacitorStorage', :path => '../../node_modules/@capacitor/storage'
|
||||
end
|
||||
|
||||
target 'App' do
|
||||
|
|
|
@ -13,6 +13,7 @@ class PlayerHandler {
|
|||
private static var timer: Timer?
|
||||
private static var lastSyncTime:Double = 0.0
|
||||
|
||||
public static var sleepTimerChapterStopTime: Int? = nil
|
||||
private static var _remainingSleepTime: Int? = nil
|
||||
public static var remainingSleepTime: Int? {
|
||||
get {
|
||||
|
@ -127,18 +128,28 @@ class PlayerHandler {
|
|||
private static func tick() {
|
||||
if !paused {
|
||||
listeningTimePassedSinceLastSync += 1
|
||||
|
||||
if remainingSleepTime != nil {
|
||||
if sleepTimerChapterStopTime != nil {
|
||||
let timeUntilChapterEnd = Double(sleepTimerChapterStopTime ?? 0) - (getCurrentTime() ?? 0)
|
||||
if timeUntilChapterEnd <= 0 {
|
||||
paused = true
|
||||
remainingSleepTime = nil
|
||||
} else {
|
||||
remainingSleepTime = Int(timeUntilChapterEnd.rounded())
|
||||
}
|
||||
} else {
|
||||
if remainingSleepTime! <= 0 {
|
||||
paused = true
|
||||
}
|
||||
remainingSleepTime! -= 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if listeningTimePassedSinceLastSync >= 5 {
|
||||
syncProgress()
|
||||
}
|
||||
|
||||
if remainingSleepTime != nil {
|
||||
if remainingSleepTime! == 0 {
|
||||
paused = true
|
||||
}
|
||||
remainingSleepTime! -= 1
|
||||
}
|
||||
}
|
||||
public static func syncProgress() {
|
||||
if session == nil { return }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue