Jelajahi Sumber

Enable audio for alarms alarm even if we not are using silent tune

Jonas Björkert 1 tahun lalu
induk
melakukan
be4f091fb9

+ 12 - 1
LoopFollow/Controllers/AlarmSound.swift

@@ -135,7 +135,9 @@ class AlarmSound {
         guard !self.isPlaying else {
             return
         }
-        
+
+        enableAudio()
+
         do {
             self.audioPlayer = try AVAudioPlayer(contentsOf: self.soundURL)
             self.audioPlayer!.delegate = self.audioPlayerDelegate
@@ -244,6 +246,15 @@ class AlarmSound {
         
         self.systemOutputVolumeBeforeOverride = nil
     }
+
+    fileprivate static func enableAudio() {
+        do {
+            try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default, options: .mixWithOthers)
+            try AVAudioSession.sharedInstance().setActive(true)
+        } catch {
+            print(error)
+        }
+    }
 }
 
 class AudioPlayerDelegate: NSObject, AVAudioPlayerDelegate {

+ 1 - 3
LoopFollow/Controllers/Alarms.swift

@@ -20,15 +20,13 @@ extension MainViewController {
     
     
     func checkAlarms(bgs: [ShareGlucoseData]) {
-        if UserDefaultsRepository.debugLog.value { self.writeDebugLog(value: "Checking Alarms") }
         // Don't check or fire alarms within 1 minute of prior alarm
         if checkAlarmTimer.isValid {  return }
         
         let date = Date()
         let now = date.timeIntervalSince1970
         let currentBG = bgs[bgs.count - 1].sgv
-        //let lastBG = bgs[bgs.count - 2].sgv // not used, protect index out of bounds
-        
+
         var skipZero = false
         if UserDefaultsRepository.alertIgnoreZero.value && currentBG == 0 {
             skipZero = true