diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj index 508eff81f..2114f3b3b 100644 --- a/Signal.xcodeproj/project.pbxproj +++ b/Signal.xcodeproj/project.pbxproj @@ -247,6 +247,19 @@ 34F308A21ECB469700BB7697 /* OWSBezierPathView.m in Sources */ = {isa = PBXBuildFile; fileRef = 34F308A11ECB469700BB7697 /* OWSBezierPathView.m */; }; 34F77040203F55D000C7CBB7 /* OWS107LegacySounds.m in Sources */ = {isa = PBXBuildFile; fileRef = 34F7703E203F55D000C7CBB7 /* OWS107LegacySounds.m */; }; 34F77041203F55D000C7CBB7 /* OWS107LegacySounds.h in Headers */ = {isa = PBXBuildFile; fileRef = 34F7703F203F55D000C7CBB7 /* OWS107LegacySounds.h */; }; + 34F77045203F5E4C00C7CBB7 /* messageReceivedClassic-quiet.caf in Resources */ = {isa = PBXBuildFile; fileRef = 34F77044203F5E4B00C7CBB7 /* messageReceivedClassic-quiet.caf */; }; + 34F77052203F5E6800C7CBB7 /* note-quiet.caf in Resources */ = {isa = PBXBuildFile; fileRef = 34F77046203F5E6200C7CBB7 /* note-quiet.caf */; }; + 34F77053203F5E6800C7CBB7 /* popcorn-quiet.caf in Resources */ = {isa = PBXBuildFile; fileRef = 34F77047203F5E6200C7CBB7 /* popcorn-quiet.caf */; }; + 34F77054203F5E6800C7CBB7 /* complete-quiet.caf in Resources */ = {isa = PBXBuildFile; fileRef = 34F77048203F5E6200C7CBB7 /* complete-quiet.caf */; }; + 34F77055203F5E6800C7CBB7 /* synth-quiet.caf in Resources */ = {isa = PBXBuildFile; fileRef = 34F77049203F5E6200C7CBB7 /* synth-quiet.caf */; }; + 34F77056203F5E6800C7CBB7 /* aurora-quiet.caf in Resources */ = {isa = PBXBuildFile; fileRef = 34F7704A203F5E6300C7CBB7 /* aurora-quiet.caf */; }; + 34F77057203F5E6800C7CBB7 /* chord-quiet.caf in Resources */ = {isa = PBXBuildFile; fileRef = 34F7704B203F5E6300C7CBB7 /* chord-quiet.caf */; }; + 34F77058203F5E6800C7CBB7 /* circles-quiet.caf in Resources */ = {isa = PBXBuildFile; fileRef = 34F7704C203F5E6300C7CBB7 /* circles-quiet.caf */; }; + 34F77059203F5E6800C7CBB7 /* input-quiet.caf in Resources */ = {isa = PBXBuildFile; fileRef = 34F7704D203F5E6300C7CBB7 /* input-quiet.caf */; }; + 34F7705A203F5E6800C7CBB7 /* pulse-quiet.caf in Resources */ = {isa = PBXBuildFile; fileRef = 34F7704E203F5E6700C7CBB7 /* pulse-quiet.caf */; }; + 34F7705B203F5E6800C7CBB7 /* keys-quiet.caf in Resources */ = {isa = PBXBuildFile; fileRef = 34F7704F203F5E6700C7CBB7 /* keys-quiet.caf */; }; + 34F7705C203F5E6800C7CBB7 /* hello-quiet.caf in Resources */ = {isa = PBXBuildFile; fileRef = 34F77050203F5E6700C7CBB7 /* hello-quiet.caf */; }; + 34F7705D203F5E6800C7CBB7 /* bamboo-quiet.caf in Resources */ = {isa = PBXBuildFile; fileRef = 34F77051203F5E6700C7CBB7 /* bamboo-quiet.caf */; }; 34FD93701E3BD43A00109093 /* OWSAnyTouchGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 34FD936F1E3BD43A00109093 /* OWSAnyTouchGestureRecognizer.m */; }; 4505C2BF1E648EA300CEBF41 /* ExperienceUpgrade.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4505C2BE1E648EA300CEBF41 /* ExperienceUpgrade.swift */; }; 450998651FD8A34D00D89EB3 /* DeviceSleepManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 348F2EAD1F0D21BC00D4ECE0 /* DeviceSleepManager.swift */; }; @@ -853,6 +866,19 @@ 34F308A11ECB469700BB7697 /* OWSBezierPathView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSBezierPathView.m; sourceTree = ""; }; 34F7703E203F55D000C7CBB7 /* OWS107LegacySounds.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWS107LegacySounds.m; sourceTree = ""; }; 34F7703F203F55D000C7CBB7 /* OWS107LegacySounds.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWS107LegacySounds.h; sourceTree = ""; }; + 34F77044203F5E4B00C7CBB7 /* messageReceivedClassic-quiet.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "messageReceivedClassic-quiet.caf"; path = "Signal/AudioFiles/messageReceivedClassic-quiet.caf"; sourceTree = SOURCE_ROOT; }; + 34F77046203F5E6200C7CBB7 /* note-quiet.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "note-quiet.caf"; sourceTree = ""; }; + 34F77047203F5E6200C7CBB7 /* popcorn-quiet.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "popcorn-quiet.caf"; sourceTree = ""; }; + 34F77048203F5E6200C7CBB7 /* complete-quiet.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "complete-quiet.caf"; sourceTree = ""; }; + 34F77049203F5E6200C7CBB7 /* synth-quiet.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "synth-quiet.caf"; sourceTree = ""; }; + 34F7704A203F5E6300C7CBB7 /* aurora-quiet.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "aurora-quiet.caf"; sourceTree = ""; }; + 34F7704B203F5E6300C7CBB7 /* chord-quiet.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "chord-quiet.caf"; sourceTree = ""; }; + 34F7704C203F5E6300C7CBB7 /* circles-quiet.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "circles-quiet.caf"; sourceTree = ""; }; + 34F7704D203F5E6300C7CBB7 /* input-quiet.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "input-quiet.caf"; sourceTree = ""; }; + 34F7704E203F5E6700C7CBB7 /* pulse-quiet.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "pulse-quiet.caf"; sourceTree = ""; }; + 34F7704F203F5E6700C7CBB7 /* keys-quiet.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "keys-quiet.caf"; sourceTree = ""; }; + 34F77050203F5E6700C7CBB7 /* hello-quiet.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "hello-quiet.caf"; sourceTree = ""; }; + 34F77051203F5E6700C7CBB7 /* bamboo-quiet.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "bamboo-quiet.caf"; sourceTree = ""; }; 34FD936E1E3BD43A00109093 /* OWSAnyTouchGestureRecognizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OWSAnyTouchGestureRecognizer.h; path = views/OWSAnyTouchGestureRecognizer.h; sourceTree = ""; }; 34FD936F1E3BD43A00109093 /* OWSAnyTouchGestureRecognizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OWSAnyTouchGestureRecognizer.m; path = views/OWSAnyTouchGestureRecognizer.m; sourceTree = ""; }; 435EAC2E5E22D3F087EB3192 /* Pods-SignalShareExtension.app store release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SignalShareExtension.app store release.xcconfig"; path = "Pods/Target Support Files/Pods-SignalShareExtension/Pods-SignalShareExtension.app store release.xcconfig"; sourceTree = ""; }; @@ -1179,12 +1205,13 @@ isa = PBXGroup; children = ( 34CF0783203E6B77005C4D61 /* busy_tone_ansi.caf */, - 3421FA57203F542D00275549 /* messageReceivedClassic.aifc */, - 3421FA58203F542E00275549 /* ringtoneClassic.caf */, 34CF0786203E6B78005C4D61 /* end_call_tone_cept.caf */, + 34F77044203F5E4B00C7CBB7 /* messageReceivedClassic-quiet.caf */, + 3421FA57203F542D00275549 /* messageReceivedClassic.aifc */, 34074FC5203E5435004596AE /* messageReceivedSounds */, 34CF0784203E6B77005C4D61 /* ringback_tone_ansi.caf */, 34CF0785203E6B77005C4D61 /* ringback_tone_cept.caf */, + 3421FA58203F542E00275549 /* ringtoneClassic.caf */, 34074FD2203E5436004596AE /* ringtoneSounds */, ); path = Sounds; @@ -1193,17 +1220,29 @@ 34074FC5203E5435004596AE /* messageReceivedSounds */ = { isa = PBXGroup; children = ( + 34F7704A203F5E6300C7CBB7 /* aurora-quiet.caf */, 34074FC6203E5435004596AE /* aurora.m4r */, 34074FC7203E5435004596AE /* bamboo.m4r */, + 34F77051203F5E6700C7CBB7 /* bamboo-quiet.caf */, + 34F7704B203F5E6300C7CBB7 /* chord-quiet.caf */, 34074FC8203E5435004596AE /* chord.m4r */, + 34F7704C203F5E6300C7CBB7 /* circles-quiet.caf */, 34074FC9203E5435004596AE /* circles.m4r */, + 34F77048203F5E6200C7CBB7 /* complete-quiet.caf */, 34074FCA203E5435004596AE /* complete.m4r */, 34074FCB203E5435004596AE /* hello.m4r */, + 34F77050203F5E6700C7CBB7 /* hello-quiet.caf */, + 34F7704D203F5E6300C7CBB7 /* input-quiet.caf */, 34074FCC203E5435004596AE /* input.m4r */, 34074FCD203E5435004596AE /* keys.m4r */, + 34F7704F203F5E6700C7CBB7 /* keys-quiet.caf */, + 34F77046203F5E6200C7CBB7 /* note-quiet.caf */, 34074FCE203E5435004596AE /* note.m4r */, + 34F77047203F5E6200C7CBB7 /* popcorn-quiet.caf */, 34074FCF203E5435004596AE /* popcorn.m4r */, 34074FD0203E5435004596AE /* pulse.m4r */, + 34F7704E203F5E6700C7CBB7 /* pulse-quiet.caf */, + 34F77049203F5E6200C7CBB7 /* synth-quiet.caf */, 34074FD1203E5435004596AE /* synth.m4r */, ); name = messageReceivedSounds; @@ -2537,12 +2576,17 @@ 34074FF1203E5436004596AE /* circles.m4r in Resources */, AD83FF441A73426500B5C81A /* audio_pause_button.png in Resources */, 34075005203E5436004596AE /* Night Owl.m4r in Resources */, + 34F77053203F5E6800C7CBB7 /* popcorn-quiet.caf in Resources */, + 34F77054203F5E6800C7CBB7 /* complete-quiet.caf in Resources */, B6F509971AA53F760068F56A /* Localizable.strings in Resources */, + 34F77045203F5E4C00C7CBB7 /* messageReceivedClassic-quiet.caf in Resources */, B633C59D1A1D190B0059AC12 /* endcall@2x.png in Resources */, FC5CDF391A3393DD00B47253 /* error_white@2x.png in Resources */, 34075003203E5436004596AE /* Hillside.m4r in Resources */, 34074FFA203E5436004596AE /* Apex.m4r in Resources */, + 34F7705B203F5E6800C7CBB7 /* keys-quiet.caf in Resources */, 3407500E203E5436004596AE /* Silk.m4r in Resources */, + 34F77057203F5E6800C7CBB7 /* chord-quiet.caf in Resources */, 34075004203E5436004596AE /* Illuminate.m4r in Resources */, B633C5D21A1D190B0059AC12 /* savephoto@2x.png in Resources */, B10C9B611A7049EC00ECA2BF /* play_icon.png in Resources */, @@ -2551,12 +2595,15 @@ AD83FF401A73426500B5C81A /* audio_pause_button_blue@2x.png in Resources */, B66DBF4A19D5BBC8006EA940 /* Images.xcassets in Resources */, 34CF0788203E6B78005C4D61 /* ringback_tone_ansi.caf in Resources */, + 34F77055203F5E6800C7CBB7 /* synth-quiet.caf in Resources */, + 34F7705D203F5E6800C7CBB7 /* bamboo-quiet.caf in Resources */, 34074FF7203E5436004596AE /* popcorn.m4r in Resources */, 34CF0789203E6B78005C4D61 /* ringback_tone_cept.caf in Resources */, 34074FFF203E5436004596AE /* Circuit.m4r in Resources */, 34074FF8203E5436004596AE /* pulse.m4r in Resources */, 4517642A1DE939FD00EDB8B9 /* ContactCell.xib in Resources */, AD83FF431A73426500B5C81A /* audio_play_button@2x.png in Resources */, + 34F77052203F5E6800C7CBB7 /* note-quiet.caf in Resources */, 34075007203E5436004596AE /* Playtime.m4r in Resources */, 45CB2FA81CB7146C00E1B343 /* Launch Screen.storyboard in Resources */, 34B3F8781E8DF1700035BE1A /* ContactsPicker.xib in Resources */, @@ -2572,14 +2619,18 @@ 34074FF6203E5436004596AE /* note.m4r in Resources */, 34075009203E5436004596AE /* Radar.m4r in Resources */, 34075012203E5436004596AE /* Twinkle.m4r in Resources */, + 34F77056203F5E6800C7CBB7 /* aurora-quiet.caf in Resources */, B633C58D1A1D190B0059AC12 /* contact_default_feed.png in Resources */, B10C9B621A7049EC00ECA2BF /* play_icon@2x.png in Resources */, 34074FFE203E5436004596AE /* Chimes.m4r in Resources */, B633C5861A1D190B0059AC12 /* call@2x.png in Resources */, B67EBF5D19194AC60084CCFD /* Settings.bundle in Resources */, + 34F77058203F5E6800C7CBB7 /* circles-quiet.caf in Resources */, 3421FA59203F542E00275549 /* messageReceivedClassic.aifc in Resources */, + 34F7705A203F5E6800C7CBB7 /* pulse-quiet.caf in Resources */, 34074FF5203E5436004596AE /* keys.m4r in Resources */, 3407500D203E5436004596AE /* Signal.m4r in Resources */, + 34F77059203F5E6800C7CBB7 /* input-quiet.caf in Resources */, 34075000203E5436004596AE /* Constellation.m4r in Resources */, B10C9B601A7049EC00ECA2BF /* pause_icon@2x.png in Resources */, 34075002203E5436004596AE /* Crystals.m4r in Resources */, @@ -2589,6 +2640,7 @@ 34075013203E5436004596AE /* Uplift.m4r in Resources */, 3407500B203E5436004596AE /* Ripples.m4r in Resources */, 34CF0787203E6B78005C4D61 /* busy_tone_ansi.caf in Resources */, + 34F7705C203F5E6800C7CBB7 /* hello-quiet.caf in Resources */, 34075010203E5436004596AE /* Stargaze.m4r in Resources */, 34074FF0203E5436004596AE /* chord.m4r in Resources */, 34074FF4203E5436004596AE /* input.m4r in Resources */, diff --git a/Signal/AudioFiles/make-quiet.sh b/Signal/AudioFiles/make-quiet.sh new file mode 100755 index 000000000..b870876cf --- /dev/null +++ b/Signal/AudioFiles/make-quiet.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +ffmpeg -i "messageReceivedClassic.aifc" -filter:a "volume=0.5" "messageReceivedClassic-quiet.caf" diff --git a/Signal/AudioFiles/messageReceivedClassic-quiet.caf b/Signal/AudioFiles/messageReceivedClassic-quiet.caf new file mode 100644 index 000000000..1a2f1a8c3 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedClassic-quiet.caf differ diff --git a/Signal/AudioFiles/messageReceivedSounds/aurora-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/aurora-quiet.caf new file mode 100644 index 000000000..118ab1d1f Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/aurora-quiet.caf differ diff --git a/Signal/AudioFiles/messageReceivedSounds/bamboo-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/bamboo-quiet.caf new file mode 100644 index 000000000..d28d7b0e6 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/bamboo-quiet.caf differ diff --git a/Signal/AudioFiles/messageReceivedSounds/chord-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/chord-quiet.caf new file mode 100644 index 000000000..81ea1dece Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/chord-quiet.caf differ diff --git a/Signal/AudioFiles/messageReceivedSounds/circles-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/circles-quiet.caf new file mode 100644 index 000000000..6a4c406ae Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/circles-quiet.caf differ diff --git a/Signal/AudioFiles/messageReceivedSounds/complete-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/complete-quiet.caf new file mode 100644 index 000000000..0c381da52 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/complete-quiet.caf differ diff --git a/Signal/AudioFiles/messageReceivedSounds/hello-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/hello-quiet.caf new file mode 100644 index 000000000..8760c323c Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/hello-quiet.caf differ diff --git a/Signal/AudioFiles/messageReceivedSounds/input-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/input-quiet.caf new file mode 100644 index 000000000..51136cbef Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/input-quiet.caf differ diff --git a/Signal/AudioFiles/messageReceivedSounds/keys-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/keys-quiet.caf new file mode 100644 index 000000000..4c4ad2fbe Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/keys-quiet.caf differ diff --git a/Signal/AudioFiles/messageReceivedSounds/make-quiet.sh b/Signal/AudioFiles/messageReceivedSounds/make-quiet.sh new file mode 100755 index 000000000..80adc4fae --- /dev/null +++ b/Signal/AudioFiles/messageReceivedSounds/make-quiet.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +ffmpeg -i aurora.m4r -filter:a "volume=0.5" aurora-quiet.caf +ffmpeg -i bamboo.m4r -filter:a "volume=0.5" bamboo-quiet.caf +ffmpeg -i chord.m4r -filter:a "volume=0.5" chord-quiet.caf +ffmpeg -i circles.m4r -filter:a "volume=0.5" circles-quiet.caf +ffmpeg -i complete.m4r -filter:a "volume=0.5" complete-quiet.caf +ffmpeg -i hello.m4r -filter:a "volume=0.5" hello-quiet.caf +ffmpeg -i input.m4r -filter:a "volume=0.5" input-quiet.caf +ffmpeg -i keys.m4r -filter:a "volume=0.5" keys-quiet.caf +ffmpeg -i note.m4r -filter:a "volume=0.5" note-quiet.caf +ffmpeg -i popcorn.m4r -filter:a "volume=0.5" popcorn-quiet.caf +ffmpeg -i pulse.m4r -filter:a "volume=0.5" pulse-quiet.caf +ffmpeg -i synth.m4r -filter:a "volume=0.5" synth-quiet.caf diff --git a/Signal/AudioFiles/messageReceivedSounds/note-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/note-quiet.caf new file mode 100644 index 000000000..680c6ec76 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/note-quiet.caf differ diff --git a/Signal/AudioFiles/messageReceivedSounds/popcorn-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/popcorn-quiet.caf new file mode 100644 index 000000000..d35190353 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/popcorn-quiet.caf differ diff --git a/Signal/AudioFiles/messageReceivedSounds/pulse-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/pulse-quiet.caf new file mode 100644 index 000000000..deab9e595 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/pulse-quiet.caf differ diff --git a/Signal/AudioFiles/messageReceivedSounds/synth-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/synth-quiet.caf new file mode 100644 index 000000000..e2de0021f Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/synth-quiet.caf differ diff --git a/Signal/src/environment/NotificationsManager.m b/Signal/src/environment/NotificationsManager.m index 092b33e63..e90511c0d 100644 --- a/Signal/src/environment/NotificationsManager.m +++ b/Signal/src/environment/NotificationsManager.m @@ -354,7 +354,8 @@ } else { if (shouldPlaySound && [Environment.preferences soundInForeground]) { OWSSound sound = [OWSSounds notificationSoundForThread:thread]; - [OWSSounds playSound:sound]; + // We play the "quiet" variation of sounds if possible for notifications in the foreground. + [OWSSounds playSound:sound quiet:YES]; } } }); diff --git a/SignalMessaging/environment/OWSSounds.h b/SignalMessaging/environment/OWSSounds.h index ea4540658..f99595172 100644 --- a/SignalMessaging/environment/OWSSounds.h +++ b/SignalMessaging/environment/OWSSounds.h @@ -75,6 +75,7 @@ typedef NS_ENUM(NSUInteger, OWSSound) { + (nullable NSString *)filenameForSound:(OWSSound)sound; + (void)playSound:(OWSSound)sound; ++ (void)playSound:(OWSSound)sound quiet:(BOOL)quiet; #pragma mark - Notifications diff --git a/SignalMessaging/environment/OWSSounds.m b/SignalMessaging/environment/OWSSounds.m index f25a80512..b16292126 100644 --- a/SignalMessaging/environment/OWSSounds.m +++ b/SignalMessaging/environment/OWSSounds.m @@ -233,6 +233,11 @@ NSString *const kOWSSoundsStorageGlobalRingtoneKey = @"kOWSSoundsStorageGlobalRi } + (nullable NSString *)filenameForSound:(OWSSound)sound +{ + return [self filenameForSound:sound quiet:NO]; +} + ++ (nullable NSString *)filenameForSound:(OWSSound)sound quiet:(BOOL)quiet { switch (sound) { case OWSSound_Default: @@ -241,31 +246,31 @@ NSString *const kOWSSoundsStorageGlobalRingtoneKey = @"kOWSSoundsStorageGlobalRi // Notification Sounds case OWSSound_Aurora: - return @"aurora.m4r"; + return (quiet ? @"aurora-quiet.caf" : @"aurora.m4r"); case OWSSound_Bamboo: - return @"bamboo.m4r"; + return (quiet ? @"bamboo-quiet.caf" : @"bamboo.m4r"); case OWSSound_Chord: - return @"chord.m4r"; + return (quiet ? @"chord-quiet.caf" : @"chord.m4r"); case OWSSound_Circles: - return @"circles.m4r"; + return (quiet ? @"circles-quiet.caf" : @"circles.m4r"); case OWSSound_Complete: - return @"complete.m4r"; + return (quiet ? @"complete-quiet.caf" : @"complete.m4r"); case OWSSound_Hello: - return @"hello.m4r"; + return (quiet ? @"hello-quiet.caf" : @"hello.m4r"); case OWSSound_Input: - return @"input.m4r"; + return (quiet ? @"input-quiet.caf" : @"input.m4r"); case OWSSound_Keys: - return @"keys.m4r"; + return (quiet ? @"keys-quiet.caf" : @"keys.m4r"); case OWSSound_Note: - return @"note.m4r"; + return (quiet ? @"note-quiet.caf" : @"note.m4r"); case OWSSound_Popcorn: - return @"popcorn.m4r"; + return (quiet ? @"popcorn-quiet.caf" : @"popcorn.m4r"); case OWSSound_Pulse: - return @"pulse.m4r"; + return (quiet ? @"pulse-quiet.caf" : @"pulse.m4r"); case OWSSound_Synth: - return @"synth.m4r"; + return (quiet ? @"synth-quiet.caf" : @"synth.m4r"); case OWSSound_ClassicNotification: - return @"messageReceivedClassic.aifc"; + return (quiet ? @"messageReceivedClassic-quiet.caf" : @"messageReceivedClassic.aifc"); // Ringtone Sounds case OWSSound_Apex: @@ -341,9 +346,9 @@ NSString *const kOWSSoundsStorageGlobalRingtoneKey = @"kOWSSoundsStorageGlobalRi } } -+ (nullable NSURL *)soundURLForSound:(OWSSound)sound ++ (nullable NSURL *)soundURLForSound:(OWSSound)sound quiet:(BOOL)quiet { - NSString *_Nullable filename = [self filenameForSound:sound]; + NSString *_Nullable filename = [self filenameForSound:sound quiet:quiet]; if (!filename) { return nil; } @@ -355,13 +360,18 @@ NSString *const kOWSSoundsStorageGlobalRingtoneKey = @"kOWSSoundsStorageGlobalRi + (void)playSound:(OWSSound)sound { - [self.sharedManager playSound:sound]; + [self.sharedManager playSound:sound quiet:NO]; } -- (void)playSound:(OWSSound)sound ++ (void)playSound:(OWSSound)sound quiet:(BOOL)quiet +{ + [self.sharedManager playSound:sound quiet:quiet]; +} + +- (void)playSound:(OWSSound)sound quiet:(BOOL)quiet { [self.audioPlayer stop]; - self.audioPlayer = [OWSSounds audioPlayerForSound:sound]; + self.audioPlayer = [OWSSounds audioPlayerForSound:sound quiet:quiet]; [self.audioPlayer play]; } @@ -474,7 +484,12 @@ NSString *const kOWSSoundsStorageGlobalRingtoneKey = @"kOWSSoundsStorageGlobalRi + (nullable AVAudioPlayer *)audioPlayerForSound:(OWSSound)sound { - NSURL *_Nullable soundURL = [OWSSounds soundURLForSound:sound]; + return [self audioPlayerForSound:sound quiet:NO]; +} + ++ (nullable AVAudioPlayer *)audioPlayerForSound:(OWSSound)sound quiet:(BOOL)quiet +{ + NSURL *_Nullable soundURL = [OWSSounds soundURLForSound:sound quiet:(BOOL)quiet]; if (!soundURL) { return nil; }