diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj index 2114f3b3b..f0d1b137e 100644 --- a/Signal.xcodeproj/project.pbxproj +++ b/Signal.xcodeproj/project.pbxproj @@ -23,38 +23,10 @@ 34074FF7203E5436004596AE /* popcorn.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FCF203E5435004596AE /* popcorn.m4r */; }; 34074FF8203E5436004596AE /* pulse.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FD0203E5435004596AE /* pulse.m4r */; }; 34074FF9203E5436004596AE /* synth.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FD1203E5435004596AE /* synth.m4r */; }; - 34074FFA203E5436004596AE /* Apex.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FD3203E5436004596AE /* Apex.m4r */; }; - 34074FFB203E5436004596AE /* Beacon.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FD4203E5436004596AE /* Beacon.m4r */; }; - 34074FFC203E5436004596AE /* Bulletin.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FD5203E5436004596AE /* Bulletin.m4r */; }; - 34074FFD203E5436004596AE /* By The Seaside.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FD6203E5436004596AE /* By The Seaside.m4r */; }; - 34074FFE203E5436004596AE /* Chimes.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FD7203E5436004596AE /* Chimes.m4r */; }; - 34074FFF203E5436004596AE /* Circuit.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FD8203E5436004596AE /* Circuit.m4r */; }; - 34075000203E5436004596AE /* Constellation.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FD9203E5436004596AE /* Constellation.m4r */; }; - 34075001203E5436004596AE /* Cosmic.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FDA203E5436004596AE /* Cosmic.m4r */; }; - 34075002203E5436004596AE /* Crystals.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FDB203E5436004596AE /* Crystals.m4r */; }; - 34075003203E5436004596AE /* Hillside.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FDC203E5436004596AE /* Hillside.m4r */; }; - 34075004203E5436004596AE /* Illuminate.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FDD203E5436004596AE /* Illuminate.m4r */; }; - 34075005203E5436004596AE /* Night Owl.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FDE203E5436004596AE /* Night Owl.m4r */; }; - 34075006203E5436004596AE /* Opening.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FDF203E5436004596AE /* Opening.m4r */; }; - 34075007203E5436004596AE /* Playtime.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FE0203E5436004596AE /* Playtime.m4r */; }; - 34075008203E5436004596AE /* Presto.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FE1203E5436004596AE /* Presto.m4r */; }; - 34075009203E5436004596AE /* Radar.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FE2203E5436004596AE /* Radar.m4r */; }; - 3407500A203E5436004596AE /* Radiate.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FE3203E5436004596AE /* Radiate.m4r */; }; - 3407500B203E5436004596AE /* Ripples.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FE4203E5436004596AE /* Ripples.m4r */; }; - 3407500C203E5436004596AE /* Sencha.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FE5203E5436004596AE /* Sencha.m4r */; }; - 3407500D203E5436004596AE /* Signal.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FE6203E5436004596AE /* Signal.m4r */; }; - 3407500E203E5436004596AE /* Silk.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FE7203E5436004596AE /* Silk.m4r */; }; - 3407500F203E5436004596AE /* Slow Rise.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FE8203E5436004596AE /* Slow Rise.m4r */; }; - 34075010203E5436004596AE /* Stargaze.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FE9203E5436004596AE /* Stargaze.m4r */; }; - 34075011203E5436004596AE /* Summit.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FEA203E5436004596AE /* Summit.m4r */; }; - 34075012203E5436004596AE /* Twinkle.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FEB203E5436004596AE /* Twinkle.m4r */; }; - 34075013203E5436004596AE /* Uplift.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FEC203E5436004596AE /* Uplift.m4r */; }; - 34075014203E5436004596AE /* Waves.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FED203E5436004596AE /* Waves.m4r */; }; 340B02BA1FA0D6C700F9CFEC /* ConversationViewItemTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 340B02B91FA0D6C700F9CFEC /* ConversationViewItemTest.m */; }; 340CB2271EAC25820001CAA1 /* UpdateGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 340CB2261EAC25820001CAA1 /* UpdateGroupViewController.m */; }; 341F2C0F1F2B8AE700D07D6B /* DebugUIMisc.m in Sources */ = {isa = PBXBuildFile; fileRef = 341F2C0E1F2B8AE700D07D6B /* DebugUIMisc.m */; }; 3421FA59203F542E00275549 /* messageReceivedClassic.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 3421FA57203F542D00275549 /* messageReceivedClassic.aifc */; }; - 3421FA5A203F542E00275549 /* ringtoneClassic.caf in Resources */ = {isa = PBXBuildFile; fileRef = 3421FA58203F542E00275549 /* ringtoneClassic.caf */; }; 3430FE181F7751D4000EC51B /* GiphyAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3430FE171F7751D4000EC51B /* GiphyAPI.swift */; }; 34330A5A1E7875FB00DF2FB9 /* fontawesome-webfont.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 34330A591E7875FB00DF2FB9 /* fontawesome-webfont.ttf */; }; 34330A5C1E787A9800DF2FB9 /* dripicons-v2.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 34330A5B1E787A9800DF2FB9 /* dripicons-v2.ttf */; }; @@ -201,6 +173,7 @@ 34BECE2B1F74C12700D7438D /* DebugUIStress.m in Sources */ = {isa = PBXBuildFile; fileRef = 34BECE2A1F74C12700D7438D /* DebugUIStress.m */; }; 34BECE2E1F7ABCE000D7438D /* GifPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BECE2D1F7ABCE000D7438D /* GifPickerViewController.swift */; }; 34BECE301F7ABCF800D7438D /* GifPickerLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BECE2F1F7ABCF800D7438D /* GifPickerLayout.swift */; }; + 34C3C78D20409F320000134C /* Opening.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34C3C78C20409F320000134C /* Opening.m4r */; }; 34C42D5B1F45F7A80072EC04 /* OWSNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34C42D5A1F45F7A80072EC04 /* OWSNavigationController.m */; }; 34C6B0A91FA0E46F00D35993 /* test-gif.gif in Resources */ = {isa = PBXBuildFile; fileRef = 34C6B0A51FA0E46F00D35993 /* test-gif.gif */; }; 34C6B0AB1FA0E46F00D35993 /* test-mp3.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 34C6B0A71FA0E46F00D35993 /* test-mp3.mp3 */; }; @@ -551,33 +524,6 @@ 34074FCF203E5435004596AE /* popcorn.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = popcorn.m4r; sourceTree = ""; }; 34074FD0203E5435004596AE /* pulse.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = pulse.m4r; sourceTree = ""; }; 34074FD1203E5435004596AE /* synth.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = synth.m4r; sourceTree = ""; }; - 34074FD3203E5436004596AE /* Apex.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Apex.m4r; sourceTree = ""; }; - 34074FD4203E5436004596AE /* Beacon.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Beacon.m4r; sourceTree = ""; }; - 34074FD5203E5436004596AE /* Bulletin.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Bulletin.m4r; sourceTree = ""; }; - 34074FD6203E5436004596AE /* By The Seaside.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = "By The Seaside.m4r"; sourceTree = ""; }; - 34074FD7203E5436004596AE /* Chimes.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Chimes.m4r; sourceTree = ""; }; - 34074FD8203E5436004596AE /* Circuit.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Circuit.m4r; sourceTree = ""; }; - 34074FD9203E5436004596AE /* Constellation.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Constellation.m4r; sourceTree = ""; }; - 34074FDA203E5436004596AE /* Cosmic.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Cosmic.m4r; sourceTree = ""; }; - 34074FDB203E5436004596AE /* Crystals.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Crystals.m4r; sourceTree = ""; }; - 34074FDC203E5436004596AE /* Hillside.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Hillside.m4r; sourceTree = ""; }; - 34074FDD203E5436004596AE /* Illuminate.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Illuminate.m4r; sourceTree = ""; }; - 34074FDE203E5436004596AE /* Night Owl.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Night Owl.m4r"; sourceTree = ""; }; - 34074FDF203E5436004596AE /* Opening.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Opening.m4r; sourceTree = ""; }; - 34074FE0203E5436004596AE /* Playtime.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Playtime.m4r; sourceTree = ""; }; - 34074FE1203E5436004596AE /* Presto.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Presto.m4r; sourceTree = ""; }; - 34074FE2203E5436004596AE /* Radar.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Radar.m4r; sourceTree = ""; }; - 34074FE3203E5436004596AE /* Radiate.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Radiate.m4r; sourceTree = ""; }; - 34074FE4203E5436004596AE /* Ripples.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Ripples.m4r; sourceTree = ""; }; - 34074FE5203E5436004596AE /* Sencha.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Sencha.m4r; sourceTree = ""; }; - 34074FE6203E5436004596AE /* Signal.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Signal.m4r; sourceTree = ""; }; - 34074FE7203E5436004596AE /* Silk.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Silk.m4r; sourceTree = ""; }; - 34074FE8203E5436004596AE /* Slow Rise.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Slow Rise.m4r"; sourceTree = ""; }; - 34074FE9203E5436004596AE /* Stargaze.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Stargaze.m4r; sourceTree = ""; }; - 34074FEA203E5436004596AE /* Summit.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Summit.m4r; sourceTree = ""; }; - 34074FEB203E5436004596AE /* Twinkle.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Twinkle.m4r; sourceTree = ""; }; - 34074FEC203E5436004596AE /* Uplift.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Uplift.m4r; sourceTree = ""; }; - 34074FED203E5436004596AE /* Waves.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Waves.m4r; sourceTree = ""; }; 340B02B61F9FD31800F9CFEC /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = translations/he.lproj/Localizable.strings; sourceTree = ""; }; 340B02B91FA0D6C700F9CFEC /* ConversationViewItemTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConversationViewItemTest.m; sourceTree = ""; }; 340CB2221EAC155C0001CAA1 /* ContactsViewHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContactsViewHelper.h; sourceTree = ""; }; @@ -588,7 +534,6 @@ 341F2C0D1F2B8AE700D07D6B /* DebugUIMisc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DebugUIMisc.h; sourceTree = ""; }; 341F2C0E1F2B8AE700D07D6B /* DebugUIMisc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DebugUIMisc.m; sourceTree = ""; }; 3421FA57203F542D00275549 /* messageReceivedClassic.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; name = messageReceivedClassic.aifc; path = Signal/AudioFiles/messageReceivedClassic.aifc; sourceTree = SOURCE_ROOT; }; - 3421FA58203F542E00275549 /* ringtoneClassic.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = ringtoneClassic.caf; path = Signal/AudioFiles/ringtoneClassic.caf; sourceTree = SOURCE_ROOT; }; 3430FE171F7751D4000EC51B /* GiphyAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GiphyAPI.swift; sourceTree = ""; }; 34330A591E7875FB00DF2FB9 /* fontawesome-webfont.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "fontawesome-webfont.ttf"; sourceTree = ""; }; 34330A5B1E787A9800DF2FB9 /* dripicons-v2.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "dripicons-v2.ttf"; sourceTree = ""; }; @@ -780,6 +725,7 @@ 34BECE2A1F74C12700D7438D /* DebugUIStress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DebugUIStress.m; sourceTree = ""; }; 34BECE2D1F7ABCE000D7438D /* GifPickerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GifPickerViewController.swift; sourceTree = ""; }; 34BECE2F1F7ABCF800D7438D /* GifPickerLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GifPickerLayout.swift; sourceTree = ""; }; + 34C3C78C20409F320000134C /* Opening.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Opening.m4r; sourceTree = ""; }; 34C42D591F45F7A80072EC04 /* OWSNavigationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSNavigationController.h; sourceTree = ""; }; 34C42D5A1F45F7A80072EC04 /* OWSNavigationController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSNavigationController.m; sourceTree = ""; }; 34C42D621F4734ED0072EC04 /* OWSContactOffersInteraction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSContactOffersInteraction.h; sourceTree = ""; }; @@ -1211,8 +1157,7 @@ 34074FC5203E5435004596AE /* messageReceivedSounds */, 34CF0784203E6B77005C4D61 /* ringback_tone_ansi.caf */, 34CF0785203E6B77005C4D61 /* ringback_tone_cept.caf */, - 3421FA58203F542E00275549 /* ringtoneClassic.caf */, - 34074FD2203E5436004596AE /* ringtoneSounds */, + 34C3C78B20409F320000134C /* ringtoneSounds */, ); path = Sounds; sourceTree = ""; @@ -1249,41 +1194,6 @@ path = Signal/AudioFiles/messageReceivedSounds; sourceTree = SOURCE_ROOT; }; - 34074FD2203E5436004596AE /* ringtoneSounds */ = { - isa = PBXGroup; - children = ( - 34074FD3203E5436004596AE /* Apex.m4r */, - 34074FD4203E5436004596AE /* Beacon.m4r */, - 34074FD5203E5436004596AE /* Bulletin.m4r */, - 34074FD6203E5436004596AE /* By The Seaside.m4r */, - 34074FD7203E5436004596AE /* Chimes.m4r */, - 34074FD8203E5436004596AE /* Circuit.m4r */, - 34074FD9203E5436004596AE /* Constellation.m4r */, - 34074FDA203E5436004596AE /* Cosmic.m4r */, - 34074FDB203E5436004596AE /* Crystals.m4r */, - 34074FDC203E5436004596AE /* Hillside.m4r */, - 34074FDD203E5436004596AE /* Illuminate.m4r */, - 34074FDE203E5436004596AE /* Night Owl.m4r */, - 34074FDF203E5436004596AE /* Opening.m4r */, - 34074FE0203E5436004596AE /* Playtime.m4r */, - 34074FE1203E5436004596AE /* Presto.m4r */, - 34074FE2203E5436004596AE /* Radar.m4r */, - 34074FE3203E5436004596AE /* Radiate.m4r */, - 34074FE4203E5436004596AE /* Ripples.m4r */, - 34074FE5203E5436004596AE /* Sencha.m4r */, - 34074FE6203E5436004596AE /* Signal.m4r */, - 34074FE7203E5436004596AE /* Silk.m4r */, - 34074FE8203E5436004596AE /* Slow Rise.m4r */, - 34074FE9203E5436004596AE /* Stargaze.m4r */, - 34074FEA203E5436004596AE /* Summit.m4r */, - 34074FEB203E5436004596AE /* Twinkle.m4r */, - 34074FEC203E5436004596AE /* Uplift.m4r */, - 34074FED203E5436004596AE /* Waves.m4r */, - ); - name = ringtoneSounds; - path = Signal/AudioFiles/ringtoneSounds; - sourceTree = SOURCE_ROOT; - }; 34330A581E7875FB00DF2FB9 /* Fonts */ = { isa = PBXGroup; children = ( @@ -1611,6 +1521,15 @@ path = GifPicker; sourceTree = ""; }; + 34C3C78B20409F320000134C /* ringtoneSounds */ = { + isa = PBXGroup; + children = ( + 34C3C78C20409F320000134C /* Opening.m4r */, + ); + name = ringtoneSounds; + path = Signal/AudioFiles/ringtoneSounds; + sourceTree = SOURCE_ROOT; + }; 34C6B0A41FA0E46F00D35993 /* Assets */ = { isa = PBXGroup; children = ( @@ -2563,31 +2482,23 @@ files = ( 34CF078A203E6B78005C4D61 /* end_call_tone_cept.caf in Resources */, AD83FF3F1A73426500B5C81A /* audio_pause_button_blue.png in Resources */, - 3407500C203E5436004596AE /* Sencha.m4r in Resources */, 34330A5A1E7875FB00DF2FB9 /* fontawesome-webfont.ttf in Resources */, A5509ECA1A69AB8B00ABA4BC /* Main.storyboard in Resources */, AD83FF421A73426500B5C81A /* audio_play_button.png in Resources */, 34074FEF203E5436004596AE /* bamboo.m4r in Resources */, 34330A5C1E787A9800DF2FB9 /* dripicons-v2.ttf in Resources */, B633C5C41A1D190B0059AC12 /* mute_on@2x.png in Resources */, - 3421FA5A203F542E00275549 /* ringtoneClassic.caf in Resources */, B633C5CE1A1D190B0059AC12 /* quit@2x.png in Resources */, - 34075008203E5436004596AE /* Presto.m4r in Resources */, 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 */, 34074FF3203E5436004596AE /* hello.m4r in Resources */, @@ -2599,55 +2510,36 @@ 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 */, B633C5C31A1D190B0059AC12 /* mute_off@2x.png in Resources */, - 3407500F203E5436004596AE /* Slow Rise.m4r in Resources */, 34074FF2203E5436004596AE /* complete.m4r in Resources */, - 34074FFB203E5436004596AE /* Beacon.m4r in Resources */, AD83FF411A73426500B5C81A /* audio_play_button_blue@2x.png in Resources */, + 34C3C78D20409F320000134C /* Opening.m4r in Resources */, FC5CDF3A1A3393DD00B47253 /* warning_white@2x.png in Resources */, - 34075014203E5436004596AE /* Waves.m4r in Resources */, - 34075011203E5436004596AE /* Summit.m4r in Resources */, - 34075006203E5436004596AE /* Opening.m4r in Resources */, 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 */, FC9120411A39EFB70074545C /* qr@2x.png in Resources */, - 34075001203E5436004596AE /* Cosmic.m4r in Resources */, - 34074FFD203E5436004596AE /* By The Seaside.m4r in Resources */, - 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 */, B10C9B5F1A7049EC00ECA2BF /* pause_icon.png in Resources */, - 3407500A203E5436004596AE /* Radiate.m4r in Resources */, AD83FF471A73428300B5C81A /* audio_play_button_blue.png in Resources */, - 34074FFC203E5436004596AE /* Bulletin.m4r in Resources */, 34074FEE203E5436004596AE /* aurora.m4r in Resources */, 34330A5E1E787BD800DF2FB9 /* ElegantIcons.ttf in Resources */, AD83FF451A73426500B5C81A /* audio_pause_button@2x.png in Resources */, diff --git a/Signal/AudioFiles/ringtoneSounds/Apex.m4r b/Signal/AudioFiles/ringtoneSounds/Apex.m4r deleted file mode 100644 index df8beb260..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Apex.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Beacon.m4r b/Signal/AudioFiles/ringtoneSounds/Beacon.m4r deleted file mode 100644 index 987e0ba7d..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Beacon.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Bulletin.m4r b/Signal/AudioFiles/ringtoneSounds/Bulletin.m4r deleted file mode 100644 index 769ef1a55..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Bulletin.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/By The Seaside.m4r b/Signal/AudioFiles/ringtoneSounds/By The Seaside.m4r deleted file mode 100644 index 3d56bfb5a..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/By The Seaside.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Chimes.m4r b/Signal/AudioFiles/ringtoneSounds/Chimes.m4r deleted file mode 100644 index 2aa8a8339..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Chimes.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Circuit.m4r b/Signal/AudioFiles/ringtoneSounds/Circuit.m4r deleted file mode 100644 index 42e1b7cd0..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Circuit.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Constellation.m4r b/Signal/AudioFiles/ringtoneSounds/Constellation.m4r deleted file mode 100644 index c175d2aaa..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Constellation.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Cosmic.m4r b/Signal/AudioFiles/ringtoneSounds/Cosmic.m4r deleted file mode 100644 index be56ed9ed..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Cosmic.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Crystals.m4r b/Signal/AudioFiles/ringtoneSounds/Crystals.m4r deleted file mode 100644 index 5a4fa89db..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Crystals.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Hillside.m4r b/Signal/AudioFiles/ringtoneSounds/Hillside.m4r deleted file mode 100644 index b899c4bdc..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Hillside.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Illuminate.m4r b/Signal/AudioFiles/ringtoneSounds/Illuminate.m4r deleted file mode 100644 index 9488ba284..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Illuminate.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Night Owl.m4r b/Signal/AudioFiles/ringtoneSounds/Night Owl.m4r deleted file mode 100644 index 633318843..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Night Owl.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Playtime.m4r b/Signal/AudioFiles/ringtoneSounds/Playtime.m4r deleted file mode 100644 index 55f370cb6..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Playtime.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Presto.m4r b/Signal/AudioFiles/ringtoneSounds/Presto.m4r deleted file mode 100644 index 77d5a8bc9..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Presto.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Radar.m4r b/Signal/AudioFiles/ringtoneSounds/Radar.m4r deleted file mode 100644 index f47726752..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Radar.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Radiate.m4r b/Signal/AudioFiles/ringtoneSounds/Radiate.m4r deleted file mode 100644 index f33359a3a..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Radiate.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Ripples.m4r b/Signal/AudioFiles/ringtoneSounds/Ripples.m4r deleted file mode 100644 index c8eefd56d..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Ripples.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Sencha.m4r b/Signal/AudioFiles/ringtoneSounds/Sencha.m4r deleted file mode 100644 index 95fe89f5a..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Sencha.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Signal.m4r b/Signal/AudioFiles/ringtoneSounds/Signal.m4r deleted file mode 100644 index c3f4b1526..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Signal.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Silk.m4r b/Signal/AudioFiles/ringtoneSounds/Silk.m4r deleted file mode 100644 index ce3038196..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Silk.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Slow Rise.m4r b/Signal/AudioFiles/ringtoneSounds/Slow Rise.m4r deleted file mode 100644 index 414b5cc8f..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Slow Rise.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Stargaze.m4r b/Signal/AudioFiles/ringtoneSounds/Stargaze.m4r deleted file mode 100644 index 92d86a831..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Stargaze.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Summit.m4r b/Signal/AudioFiles/ringtoneSounds/Summit.m4r deleted file mode 100644 index a8f2a1d9e..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Summit.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Twinkle.m4r b/Signal/AudioFiles/ringtoneSounds/Twinkle.m4r deleted file mode 100644 index 512afa77e..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Twinkle.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Uplift.m4r b/Signal/AudioFiles/ringtoneSounds/Uplift.m4r deleted file mode 100644 index f13d05012..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Uplift.m4r and /dev/null differ diff --git a/Signal/AudioFiles/ringtoneSounds/Waves.m4r b/Signal/AudioFiles/ringtoneSounds/Waves.m4r deleted file mode 100644 index fa16ea0b1..000000000 Binary files a/Signal/AudioFiles/ringtoneSounds/Waves.m4r and /dev/null differ diff --git a/Signal/src/ViewControllers/NotificationSettingsViewController.m b/Signal/src/ViewControllers/NotificationSettingsViewController.m index 0dbdad4d3..f02e3bbde 100644 --- a/Signal/src/ViewControllers/NotificationSettingsViewController.m +++ b/Signal/src/ViewControllers/NotificationSettingsViewController.m @@ -54,21 +54,6 @@ vc.soundType = OWSSoundType_Notification; [weakSelf.navigationController pushViewController:vc animated:YES]; }]]; - [soundsSection addItem:[OWSTableItem itemWithCustomCellBlock:^{ - UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 - reuseIdentifier:@"UITableViewCellStyleValue1"]; - cell.textLabel.text = NSLocalizedString( - @"SETTINGS_ITEM_RINGTONE_SOUND", @"Label for settings view that allows user to change the ringtone sound."); - OWSSound sound = [OWSSounds globalRingtoneSound]; - cell.detailTextLabel.text = [OWSSounds displayNameForSound:sound]; - [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; - return cell; - } - actionBlock:^{ - OWSSoundSettingsViewController *vc = [OWSSoundSettingsViewController new]; - vc.soundType = OWSSoundType_Ringtone; - [weakSelf.navigationController pushViewController:vc animated:YES]; - }]]; [contents addSection:soundsSection]; OWSTableSection *backgroundSection = [OWSTableSection new]; diff --git a/Signal/src/ViewControllers/OWSConversationSettingsViewController.m b/Signal/src/ViewControllers/OWSConversationSettingsViewController.m index 1ee8a3c24..4b554036d 100644 --- a/Signal/src/ViewControllers/OWSConversationSettingsViewController.m +++ b/Signal/src/ViewControllers/OWSConversationSettingsViewController.m @@ -592,25 +592,6 @@ NS_ASSUME_NONNULL_BEGIN vc.thread = weakSelf.thread; [weakSelf.navigationController pushViewController:vc animated:YES]; }]]; - if (!self.isGroupThread) { - - [soundsSection addItem:[OWSTableItem itemWithCustomCellBlock:^{ - UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 - reuseIdentifier:@"UITableViewCellStyleValue1"]; - cell.textLabel.text = NSLocalizedString(@"SETTINGS_ITEM_RINGTONE_SOUND", - @"Label for settings view that allows user to change the ringtone sound."); - OWSSound sound = [OWSSounds ringtoneSoundForThread:self.thread]; - cell.detailTextLabel.text = [OWSSounds displayNameForSound:sound]; - [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; - return cell; - } - actionBlock:^{ - OWSSoundSettingsViewController *vc = [OWSSoundSettingsViewController new]; - vc.soundType = OWSSoundType_Ringtone; - vc.thread = weakSelf.thread; - [weakSelf.navigationController pushViewController:vc animated:YES]; - }]]; - } [contents addSection:soundsSection]; self.contents = contents; diff --git a/Signal/src/ViewControllers/OWSSoundSettingsViewController.h b/Signal/src/ViewControllers/OWSSoundSettingsViewController.h index 0adc432b6..7d7ac11e7 100644 --- a/Signal/src/ViewControllers/OWSSoundSettingsViewController.h +++ b/Signal/src/ViewControllers/OWSSoundSettingsViewController.h @@ -6,10 +6,7 @@ NS_ASSUME_NONNULL_BEGIN -typedef NS_ENUM(NSUInteger, OWSSoundType) { - OWSSoundType_Notification = 0, - OWSSoundType_Ringtone, -}; +typedef NS_ENUM(NSUInteger, OWSSoundType) { OWSSoundType_Notification = 0 }; @class TSThread; diff --git a/Signal/src/ViewControllers/OWSSoundSettingsViewController.m b/Signal/src/ViewControllers/OWSSoundSettingsViewController.m index f526da1cd..008720546 100644 --- a/Signal/src/ViewControllers/OWSSoundSettingsViewController.m +++ b/Signal/src/ViewControllers/OWSSoundSettingsViewController.m @@ -33,12 +33,6 @@ NS_ASSUME_NONNULL_BEGIN self.currentSound = (self.thread ? [OWSSounds notificationSoundForThread:self.thread] : [OWSSounds globalNotificationSound]); break; - case OWSSoundType_Ringtone: - [self setTitle:NSLocalizedString(@"SETTINGS_ITEM_RINGTONE_SOUND", - @"Label for settings view that allows user to change the ringtone sound.")]; - self.currentSound - = (self.thread ? [OWSSounds ringtoneSoundForThread:self.thread] : [OWSSounds globalRingtoneSound]); - break; } [self updateTableContents]; @@ -84,9 +78,6 @@ NS_ASSUME_NONNULL_BEGIN case OWSSoundType_Notification: allSounds = [OWSSounds allNotificationSounds]; break; - case OWSSoundType_Ringtone: - allSounds = [OWSSounds allRingtoneSounds]; - break; } for (NSNumber *nsValue in allSounds) { OWSSound sound = (OWSSound)nsValue.intValue; @@ -147,13 +138,6 @@ NS_ASSUME_NONNULL_BEGIN [OWSSounds setGlobalNotificationSound:self.currentSound]; } break; - case OWSSoundType_Ringtone: - if (self.thread) { - [OWSSounds setRingtoneSound:self.currentSound forThread:self.thread]; - } else { - [OWSSounds setGlobalRingtoneSound:self.currentSound]; - } - break; } [self.audioPlayer stop]; diff --git a/Signal/src/call/CallAudioService.swift b/Signal/src/call/CallAudioService.swift index ae1f16eae..d31ebaf03 100644 --- a/Signal/src/call/CallAudioService.swift +++ b/Signal/src/call/CallAudioService.swift @@ -135,6 +135,10 @@ protocol CallAudioServiceDelegate: class { } } + deinit { + NotificationCenter.default.removeObserver(self) + } + // MARK: - CallObserver internal func stateDidChange(call: SignalCall, state: CallState) { @@ -413,8 +417,7 @@ protocol CallAudioServiceDelegate: class { self?.ringVibration() } vibrateTimer?.fire() - let sound = OWSSounds.ringtoneSound(for: call.thread) - play(sound: sound) + play(sound: .defaultiOSIncomingRingtone) } private func stopAnyRingingVibration() { diff --git a/Signal/src/call/Speakerbox/CallKitCallUIAdaptee.swift b/Signal/src/call/Speakerbox/CallKitCallUIAdaptee.swift index 670f51b42..e0888d6db 100644 --- a/Signal/src/call/Speakerbox/CallKitCallUIAdaptee.swift +++ b/Signal/src/call/Speakerbox/CallKitCallUIAdaptee.swift @@ -46,6 +46,10 @@ final class CallKitCallUIAdaptee: NSObject, CallUIAdaptee, CXProviderDelegate { let iconMaskImage = #imageLiteral(resourceName: "logoSignal") providerConfiguration.iconTemplateImageData = UIImagePNGRepresentation(iconMaskImage) + // We don't set the ringtoneSound property, so that we use either the + // default iOS ringtone OR the custom ringtone associated with this user's + // system contact, if possible (iOS 11 or later). + return providerConfiguration } diff --git a/Signal/src/environment/NotificationsManager.m b/Signal/src/environment/NotificationsManager.m index e90511c0d..03d660b0b 100644 --- a/Signal/src/environment/NotificationsManager.m +++ b/Signal/src/environment/NotificationsManager.m @@ -60,8 +60,7 @@ UILocalNotification *notification = [UILocalNotification new]; notification.category = PushManagerCategoriesIncomingCall; // Rather than using notification sounds, we control the ringtone and repeat vibrations with the CallAudioManager. - OWSSound sound = [OWSSounds ringtoneSoundForThread:call.thread]; - notification.soundName = [OWSSounds filenameForSound:sound]; + notification.soundName = [OWSSounds filenameForSound:OWSSound_DefaultiOSIncomingRingtone]; NSString *localCallId = call.localId.UUIDString; notification.userInfo = @{ PushManagerUserInfoKeysLocalCallId : localCallId }; diff --git a/Signal/translations/en.lproj/Localizable.strings b/Signal/translations/en.lproj/Localizable.strings index c8cdc922e..c6bc2f6b1 100644 --- a/Signal/translations/en.lproj/Localizable.strings +++ b/Signal/translations/en.lproj/Localizable.strings @@ -1575,9 +1575,6 @@ /* Label for settings view that allows user to change the notification sound. */ "SETTINGS_ITEM_NOTIFICATION_SOUND" = "Notification"; -/* Label for settings view that allows user to change the ringtone sound. */ -"SETTINGS_ITEM_RINGTONE_SOUND" = "Ringtone"; - /* Title for settings activity */ "SETTINGS_NAV_BAR_TITLE" = "Settings"; @@ -1671,7 +1668,7 @@ /* body sent to contacts when inviting to Install Signal */ "SMS_INVITE_BODY" = "I'm inviting you to install Signal! Here is the link:"; -/* Label for the 'no sound' option that allows users to disable sounds for notifications, ringtones, etc. */ +/* Label for the 'no sound' option that allows users to disable sounds for notifications, etc. */ "SOUNDS_NONE" = "None"; /* Alert body after verifying privacy with {{other user's name}} */ diff --git a/SignalMessaging/environment/OWSSounds.h b/SignalMessaging/environment/OWSSounds.h index f99595172..d2204bdc3 100644 --- a/SignalMessaging/environment/OWSSounds.h +++ b/SignalMessaging/environment/OWSSounds.h @@ -23,34 +23,7 @@ typedef NS_ENUM(NSUInteger, OWSSound) { OWSSound_ClassicNotification, // Ringtone Sounds - OWSSound_Apex, - OWSSound_Beacon, - OWSSound_Bulletin, - OWSSound_By_The_Seaside, - OWSSound_Chimes, - OWSSound_Circuit, - OWSSound_Constellation, - OWSSound_Cosmic, - OWSSound_Crystals, - OWSSound_Hillside, - OWSSound_Illuminate, - OWSSound_Night_Owl, OWSSound_Opening, - OWSSound_Playtime, - OWSSound_Presto, - OWSSound_Radar, - OWSSound_Radiate, - OWSSound_Ripples, - OWSSound_Sencha, - OWSSound_Signal, - OWSSound_Silk, - OWSSound_Slow_Rise, - OWSSound_Stargaze, - OWSSound_Summit, - OWSSound_Twinkle, - OWSSound_Uplift, - OWSSound_Waves, - OWSSound_ClassicRingtone, // Calls OWSSound_CallConnecting, @@ -60,6 +33,7 @@ typedef NS_ENUM(NSUInteger, OWSSound) { // Other OWSSound_None, + OWSSound_DefaultiOSIncomingRingtone = OWSSound_Opening, }; @class AVAudioPlayer; @@ -88,18 +62,7 @@ typedef NS_ENUM(NSUInteger, OWSSound) { + (OWSSound)notificationSoundForThread:(TSThread *)thread; + (void)setNotificationSound:(OWSSound)sound forThread:(TSThread *)thread; -#pragma mark - Ringtones - -+ (NSArray *)allRingtoneSounds; - -+ (OWSSound)globalRingtoneSound; -+ (void)setGlobalRingtoneSound:(OWSSound)sound; -+ (void)setGlobalRingtoneSound:(OWSSound)sound transaction:(YapDatabaseReadWriteTransaction *)transaction; - -+ (OWSSound)ringtoneSoundForThread:(TSThread *)thread; -+ (void)setRingtoneSound:(OWSSound)sound forThread:(TSThread *)thread; - -#pragma mark - Calls +#pragma mark - AudioPlayer + (nullable AVAudioPlayer *)audioPlayerForSound:(OWSSound)sound; diff --git a/SignalMessaging/environment/OWSSounds.m b/SignalMessaging/environment/OWSSounds.m index b16292126..a6ccb1847 100644 --- a/SignalMessaging/environment/OWSSounds.m +++ b/SignalMessaging/environment/OWSSounds.m @@ -12,9 +12,6 @@ NSString *const kOWSSoundsStorageNotificationCollection = @"kOWSSoundsStorageNotificationCollection"; NSString *const kOWSSoundsStorageGlobalNotificationKey = @"kOWSSoundsStorageGlobalNotificationKey"; -NSString *const kOWSSoundsStorageRingtoneCollection = @"kOWSSoundsStorageRingtoneCollection"; -NSString *const kOWSSoundsStorageGlobalRingtoneKey = @"kOWSSoundsStorageGlobalRingtoneKey"; - @interface OWSSounds () @property (nonatomic, readonly) YapDatabaseConnection *dbConnection; @@ -83,43 +80,6 @@ NSString *const kOWSSoundsStorageGlobalRingtoneKey = @"kOWSSoundsStorageGlobalRi ]; } -+ (NSArray *)allRingtoneSounds -{ - return @[ - // None should be first. - @(OWSSound_None), - - @(OWSSound_Apex), - @(OWSSound_Beacon), - @(OWSSound_Bulletin), - @(OWSSound_By_The_Seaside), - @(OWSSound_Chimes), - @(OWSSound_Circuit), - @(OWSSound_ClassicRingtone), - @(OWSSound_Constellation), - @(OWSSound_Cosmic), - @(OWSSound_Crystals), - @(OWSSound_Hillside), - @(OWSSound_Illuminate), - @(OWSSound_Night_Owl), - @(OWSSound_Opening), - @(OWSSound_Playtime), - @(OWSSound_Presto), - @(OWSSound_Radar), - @(OWSSound_Radiate), - @(OWSSound_Ripples), - @(OWSSound_Sencha), - @(OWSSound_Signal), - @(OWSSound_Silk), - @(OWSSound_Slow_Rise), - @(OWSSound_Stargaze), - @(OWSSound_Summit), - @(OWSSound_Twinkle), - @(OWSSound_Uplift), - @(OWSSound_Waves), - ]; -} - + (NSString *)displayNameForSound:(OWSSound)sound { // TODO: Should we localize these sound names? @@ -157,62 +117,8 @@ NSString *const kOWSSoundsStorageGlobalRingtoneKey = @"kOWSSoundsStorageGlobalRi return @"Classic"; // Ringtone Sounds - case OWSSound_Apex: - return @"Apex"; - case OWSSound_Beacon: - return @"Beacon"; - case OWSSound_Bulletin: - return @"Bulletin"; - case OWSSound_By_The_Seaside: - return @"By The Seaside"; - case OWSSound_Chimes: - return @"Chimes"; - case OWSSound_Circuit: - return @"Circuit"; - case OWSSound_Constellation: - return @"Constellation"; - case OWSSound_Cosmic: - return @"Cosmic"; - case OWSSound_Crystals: - return @"Crystals"; - case OWSSound_Hillside: - return @"Hillside"; - case OWSSound_Illuminate: - return @"Illuminate"; - case OWSSound_Night_Owl: - return @"Night Owl"; case OWSSound_Opening: return @"Opening"; - case OWSSound_Playtime: - return @"Playtime"; - case OWSSound_Presto: - return @"Presto"; - case OWSSound_Radar: - return @"Radar"; - case OWSSound_Radiate: - return @"Radiate"; - case OWSSound_Ripples: - return @"Ripples"; - case OWSSound_Sencha: - return @"Sencha"; - case OWSSound_Signal: - return @"Signal"; - case OWSSound_Silk: - return @"Silk"; - case OWSSound_Slow_Rise: - return @"Slow Rise"; - case OWSSound_Stargaze: - return @"Stargaze"; - case OWSSound_Summit: - return @"Summit"; - case OWSSound_Twinkle: - return @"Twinkle"; - case OWSSound_Uplift: - return @"Uplift"; - case OWSSound_Waves: - return @"Waves"; - case OWSSound_ClassicRingtone: - return @"Classic"; // Calls case OWSSound_CallConnecting: @@ -227,7 +133,7 @@ NSString *const kOWSSoundsStorageGlobalRingtoneKey = @"kOWSSoundsStorageGlobalRi // Other case OWSSound_None: return NSLocalizedString(@"SOUNDS_NONE", - @"Label for the 'no sound' option that allows users to disable sounds for notifications, ringtones, " + @"Label for the 'no sound' option that allows users to disable sounds for notifications, " @"etc."); } } @@ -273,62 +179,8 @@ NSString *const kOWSSoundsStorageGlobalRingtoneKey = @"kOWSSoundsStorageGlobalRi return (quiet ? @"messageReceivedClassic-quiet.caf" : @"messageReceivedClassic.aifc"); // Ringtone Sounds - case OWSSound_Apex: - return @"Apex.m4r"; - case OWSSound_Beacon: - return @"Beacon.m4r"; - case OWSSound_Bulletin: - return @"Bulletin.m4r"; - case OWSSound_By_The_Seaside: - return @"By The Seaside.m4r"; - case OWSSound_Chimes: - return @"Chimes.m4r"; - case OWSSound_Circuit: - return @"Circuit.m4r"; - case OWSSound_Constellation: - return @"Constellation.m4r"; - case OWSSound_Cosmic: - return @"Cosmic.m4r"; - case OWSSound_Crystals: - return @"Crystals.m4r"; - case OWSSound_Hillside: - return @"Hillside.m4r"; - case OWSSound_Illuminate: - return @"Illuminate.m4r"; - case OWSSound_Night_Owl: - return @"Night Owl.m4r"; case OWSSound_Opening: return @"Opening.m4r"; - case OWSSound_Playtime: - return @"Playtime.m4r"; - case OWSSound_Presto: - return @"Presto.m4r"; - case OWSSound_Radar: - return @"Radar.m4r"; - case OWSSound_Radiate: - return @"Radiate.m4r"; - case OWSSound_Ripples: - return @"Ripples.m4r"; - case OWSSound_Sencha: - return @"Sencha.m4r"; - case OWSSound_Signal: - return @"Signal.m4r"; - case OWSSound_Silk: - return @"Silk.m4r"; - case OWSSound_Slow_Rise: - return @"Slow Rise.m4r"; - case OWSSound_Stargaze: - return @"Stargaze.m4r"; - case OWSSound_Summit: - return @"Summit.m4r"; - case OWSSound_Twinkle: - return @"Twinkle.m4r"; - case OWSSound_Uplift: - return @"Uplift.m4r"; - case OWSSound_Waves: - return @"Waves.m4r"; - case OWSSound_ClassicRingtone: - return @"ringtoneClassic.caf"; // Calls case OWSSound_CallConnecting: @@ -425,61 +277,11 @@ NSString *const kOWSSoundsStorageGlobalRingtoneKey = @"kOWSSoundsStorageGlobalRi inCollection:kOWSSoundsStorageNotificationCollection]; } -#pragma mark - Ringtones - -+ (OWSSound)defaultRingtoneSound -{ - return OWSSound_Opening; -} - -+ (OWSSound)globalRingtoneSound -{ - OWSSounds *instance = OWSSounds.sharedManager; - NSNumber *_Nullable value = [instance.dbConnection objectForKey:kOWSSoundsStorageGlobalRingtoneKey - inCollection:kOWSSoundsStorageRingtoneCollection]; - // Default to the global default. - return (value ? (OWSSound)value.intValue : [self defaultRingtoneSound]); -} - -+ (void)setGlobalRingtoneSound:(OWSSound)sound -{ - OWSSounds *instance = OWSSounds.sharedManager; - [instance.dbConnection setObject:@(sound) - forKey:kOWSSoundsStorageGlobalRingtoneKey - inCollection:kOWSSoundsStorageRingtoneCollection]; -} - - -+ (void)setGlobalRingtoneSound:(OWSSound)sound transaction:(YapDatabaseReadWriteTransaction *)transaction -{ - OWSAssert(transaction); - - [transaction setObject:@(sound) - forKey:kOWSSoundsStorageGlobalRingtoneKey - inCollection:kOWSSoundsStorageRingtoneCollection]; -} - -+ (OWSSound)ringtoneSoundForThread:(TSThread *)thread -{ - OWSSounds *instance = OWSSounds.sharedManager; - NSNumber *_Nullable value = - [instance.dbConnection objectForKey:thread.uniqueId inCollection:kOWSSoundsStorageRingtoneCollection]; - // Default to the "global" ringtone sound, which in turn will default to the global default. - return (value ? (OWSSound)value.intValue : [self globalRingtoneSound]); -} - -+ (void)setRingtoneSound:(OWSSound)sound forThread:(TSThread *)thread -{ - OWSSounds *instance = OWSSounds.sharedManager; - [instance.dbConnection setObject:@(sound) forKey:thread.uniqueId inCollection:kOWSSoundsStorageRingtoneCollection]; -} - -#pragma mark - Calls +#pragma mark - AudioPlayer + (BOOL)shouldAudioPlayerLoopForSound:(OWSSound)sound { - return (sound == OWSSound_CallConnecting || sound == OWSSound_CallOutboundRinging || - [self.allRingtoneSounds containsObject:@(sound)]); + return (sound == OWSSound_CallConnecting || sound == OWSSound_CallOutboundRinging); } + (nullable AVAudioPlayer *)audioPlayerForSound:(OWSSound)sound diff --git a/SignalMessaging/environment/migrations/OWS107LegacySounds.m b/SignalMessaging/environment/migrations/OWS107LegacySounds.m index 4150483c8..2c3214edb 100644 --- a/SignalMessaging/environment/migrations/OWS107LegacySounds.m +++ b/SignalMessaging/environment/migrations/OWS107LegacySounds.m @@ -23,7 +23,6 @@ static NSString *const OWS107LegacySoundsMigrationId = @"107"; OWSAssert(transaction); [OWSSounds setGlobalNotificationSound:OWSSound_ClassicNotification transaction:transaction]; - [OWSSounds setGlobalRingtoneSound:OWSSound_ClassicRingtone transaction:transaction]; } @end