diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj index e56467b94..4dff7e96f 100644 --- a/Signal.xcodeproj/project.pbxproj +++ b/Signal.xcodeproj/project.pbxproj @@ -11,18 +11,6 @@ 34074F5B203D093B004596AE /* OWSSoundSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34074F59203D093A004596AE /* OWSSoundSettingsViewController.m */; }; 34074F61203D0CBE004596AE /* OWSSounds.m in Sources */ = {isa = PBXBuildFile; fileRef = 34074F5F203D0CBD004596AE /* OWSSounds.m */; }; 34074F62203D0CBE004596AE /* OWSSounds.h in Headers */ = {isa = PBXBuildFile; fileRef = 34074F60203D0CBE004596AE /* OWSSounds.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 34074FEE203E5436004596AE /* aurora.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FC6203E5435004596AE /* aurora.m4r */; }; - 34074FEF203E5436004596AE /* bamboo.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FC7203E5435004596AE /* bamboo.m4r */; }; - 34074FF0203E5436004596AE /* chord.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FC8203E5435004596AE /* chord.m4r */; }; - 34074FF1203E5436004596AE /* circles.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FC9203E5435004596AE /* circles.m4r */; }; - 34074FF2203E5436004596AE /* complete.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FCA203E5435004596AE /* complete.m4r */; }; - 34074FF3203E5436004596AE /* hello.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FCB203E5435004596AE /* hello.m4r */; }; - 34074FF4203E5436004596AE /* input.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FCC203E5435004596AE /* input.m4r */; }; - 34074FF5203E5436004596AE /* keys.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FCD203E5435004596AE /* keys.m4r */; }; - 34074FF6203E5436004596AE /* note.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34074FCE203E5435004596AE /* note.m4r */; }; - 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 */; }; 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 */; }; @@ -223,18 +211,6 @@ 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 */; }; @@ -327,10 +303,35 @@ 458E38371D668EBF0094BD24 /* OWSDeviceProvisioningURLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 458E38361D668EBF0094BD24 /* OWSDeviceProvisioningURLParser.m */; }; 458E383A1D6699FA0094BD24 /* OWSDeviceProvisioningURLParserTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 458E38391D6699FA0094BD24 /* OWSDeviceProvisioningURLParserTest.m */; }; 459311FC1D75C948008DD4F0 /* OWSDeviceTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 459311FB1D75C948008DD4F0 /* OWSDeviceTableViewCell.m */; }; + 45A2F005204473A3002E978A /* NewMessage.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45A2F004204473A3002E978A /* NewMessage.aifc */; }; 45A663C51F92EC760027B59E /* GroupTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45A663C41F92EC760027B59E /* GroupTableViewCell.swift */; }; 45A6DAD61EBBF85500893231 /* ReminderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45A6DAD51EBBF85500893231 /* ReminderView.swift */; }; 45AE48511E0732D6004D96C2 /* TurnServerInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45AE48501E0732D6004D96C2 /* TurnServerInfo.swift */; }; 45B27B862037FFB400A539DF /* DebugUIFileBrowser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45B27B852037FFB400A539DF /* DebugUIFileBrowser.swift */; }; + 45B74A742044AAB600CD42F8 /* aurora-quiet.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A5B2044AAB300CD42F8 /* aurora-quiet.aifc */; }; + 45B74A752044AAB600CD42F8 /* synth-quiet.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A5C2044AAB300CD42F8 /* synth-quiet.aifc */; }; + 45B74A762044AAB600CD42F8 /* keys-quiet.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A5D2044AAB400CD42F8 /* keys-quiet.aifc */; }; + 45B74A772044AAB600CD42F8 /* hello.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A5E2044AAB400CD42F8 /* hello.aifc */; }; + 45B74A782044AAB600CD42F8 /* bamboo-quiet.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A5F2044AAB400CD42F8 /* bamboo-quiet.aifc */; }; + 45B74A792044AAB600CD42F8 /* input.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A602044AAB400CD42F8 /* input.aifc */; }; + 45B74A7A2044AAB600CD42F8 /* keys.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A612044AAB400CD42F8 /* keys.aifc */; }; + 45B74A7B2044AAB600CD42F8 /* chord.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A622044AAB400CD42F8 /* chord.aifc */; }; + 45B74A7C2044AAB600CD42F8 /* hello-quiet.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A632044AAB400CD42F8 /* hello-quiet.aifc */; }; + 45B74A7D2044AAB600CD42F8 /* popcorn-quiet.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A642044AAB400CD42F8 /* popcorn-quiet.aifc */; }; + 45B74A7E2044AAB600CD42F8 /* complete.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A652044AAB400CD42F8 /* complete.aifc */; }; + 45B74A7F2044AAB600CD42F8 /* note-quiet.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A662044AAB400CD42F8 /* note-quiet.aifc */; }; + 45B74A802044AAB600CD42F8 /* pulse-quiet.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A672044AAB500CD42F8 /* pulse-quiet.aifc */; }; + 45B74A812044AAB600CD42F8 /* chord-quiet.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A682044AAB500CD42F8 /* chord-quiet.aifc */; }; + 45B74A822044AAB600CD42F8 /* pulse.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A692044AAB500CD42F8 /* pulse.aifc */; }; + 45B74A832044AAB600CD42F8 /* circles.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A6A2044AAB500CD42F8 /* circles.aifc */; }; + 45B74A842044AAB600CD42F8 /* popcorn.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A6B2044AAB500CD42F8 /* popcorn.aifc */; }; + 45B74A852044AAB600CD42F8 /* bamboo.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A6C2044AAB500CD42F8 /* bamboo.aifc */; }; + 45B74A862044AAB600CD42F8 /* note.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A6D2044AAB500CD42F8 /* note.aifc */; }; + 45B74A872044AAB600CD42F8 /* complete-quiet.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A6E2044AAB500CD42F8 /* complete-quiet.aifc */; }; + 45B74A882044AAB600CD42F8 /* aurora.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A6F2044AAB500CD42F8 /* aurora.aifc */; }; + 45B74A892044AAB600CD42F8 /* circles-quiet.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A702044AAB500CD42F8 /* circles-quiet.aifc */; }; + 45B74A8B2044AAB600CD42F8 /* synth.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A722044AAB600CD42F8 /* synth.aifc */; }; + 45B74A8C2044AAB600CD42F8 /* input-quiet.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 45B74A732044AAB600CD42F8 /* input-quiet.aifc */; }; 45B9EE9C200E91FB005D2F2D /* MediaDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 45B9EE9B200E91FB005D2F2D /* MediaDetailViewController.m */; }; 45BB93381E688E14001E3939 /* UIDevice+featureSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45BB93371E688E14001E3939 /* UIDevice+featureSupport.swift */; }; 45BC829D1FD9C4B400011CF3 /* ShareViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45BC829C1FD9C4B400011CF3 /* ShareViewDelegate.swift */; }; @@ -512,18 +513,6 @@ 34074F5A203D093B004596AE /* OWSSoundSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSSoundSettingsViewController.h; sourceTree = ""; }; 34074F5F203D0CBD004596AE /* OWSSounds.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSSounds.m; sourceTree = ""; }; 34074F60203D0CBE004596AE /* OWSSounds.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSSounds.h; sourceTree = ""; }; - 34074FC6203E5435004596AE /* aurora.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = aurora.m4r; sourceTree = ""; }; - 34074FC7203E5435004596AE /* bamboo.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = bamboo.m4r; sourceTree = ""; }; - 34074FC8203E5435004596AE /* chord.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = chord.m4r; sourceTree = ""; }; - 34074FC9203E5435004596AE /* circles.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = circles.m4r; sourceTree = ""; }; - 34074FCA203E5435004596AE /* complete.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = complete.m4r; sourceTree = ""; }; - 34074FCB203E5435004596AE /* hello.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = hello.m4r; sourceTree = ""; }; - 34074FCC203E5435004596AE /* input.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = input.m4r; sourceTree = ""; }; - 34074FCD203E5435004596AE /* keys.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = keys.m4r; sourceTree = ""; }; - 34074FCE203E5435004596AE /* note.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = note.m4r; sourceTree = ""; }; - 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 = ""; }; 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 = ""; }; @@ -813,18 +802,6 @@ 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 = ""; }; @@ -901,11 +878,36 @@ 459311FB1D75C948008DD4F0 /* OWSDeviceTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSDeviceTableViewCell.m; sourceTree = ""; }; 4597E94E1D8313C100040CDE /* sq */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sq; path = translations/sq.lproj/Localizable.strings; sourceTree = ""; }; 4597E94F1D8313CB00040CDE /* bg */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bg; path = translations/bg.lproj/Localizable.strings; sourceTree = ""; }; + 45A2F004204473A3002E978A /* NewMessage.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; name = NewMessage.aifc; path = Signal/AudioFiles/NewMessage.aifc; sourceTree = SOURCE_ROOT; }; 45A663C41F92EC760027B59E /* GroupTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupTableViewCell.swift; sourceTree = ""; }; 45A6DAD51EBBF85500893231 /* ReminderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReminderView.swift; sourceTree = ""; }; 45AE48501E0732D6004D96C2 /* TurnServerInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TurnServerInfo.swift; sourceTree = ""; }; 45B201741DAECBFD00C461E0 /* Signal-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Signal-Bridging-Header.h"; sourceTree = ""; }; 45B27B852037FFB400A539DF /* DebugUIFileBrowser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DebugUIFileBrowser.swift; sourceTree = ""; }; + 45B74A5B2044AAB300CD42F8 /* aurora-quiet.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = "aurora-quiet.aifc"; sourceTree = ""; }; + 45B74A5C2044AAB300CD42F8 /* synth-quiet.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = "synth-quiet.aifc"; sourceTree = ""; }; + 45B74A5D2044AAB400CD42F8 /* keys-quiet.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = "keys-quiet.aifc"; sourceTree = ""; }; + 45B74A5E2044AAB400CD42F8 /* hello.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = hello.aifc; sourceTree = ""; }; + 45B74A5F2044AAB400CD42F8 /* bamboo-quiet.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = "bamboo-quiet.aifc"; sourceTree = ""; }; + 45B74A602044AAB400CD42F8 /* input.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = input.aifc; sourceTree = ""; }; + 45B74A612044AAB400CD42F8 /* keys.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = keys.aifc; sourceTree = ""; }; + 45B74A622044AAB400CD42F8 /* chord.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = chord.aifc; sourceTree = ""; }; + 45B74A632044AAB400CD42F8 /* hello-quiet.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = "hello-quiet.aifc"; sourceTree = ""; }; + 45B74A642044AAB400CD42F8 /* popcorn-quiet.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = "popcorn-quiet.aifc"; sourceTree = ""; }; + 45B74A652044AAB400CD42F8 /* complete.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = complete.aifc; sourceTree = ""; }; + 45B74A662044AAB400CD42F8 /* note-quiet.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = "note-quiet.aifc"; sourceTree = ""; }; + 45B74A672044AAB500CD42F8 /* pulse-quiet.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = "pulse-quiet.aifc"; sourceTree = ""; }; + 45B74A682044AAB500CD42F8 /* chord-quiet.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = "chord-quiet.aifc"; sourceTree = ""; }; + 45B74A692044AAB500CD42F8 /* pulse.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = pulse.aifc; sourceTree = ""; }; + 45B74A6A2044AAB500CD42F8 /* circles.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = circles.aifc; sourceTree = ""; }; + 45B74A6B2044AAB500CD42F8 /* popcorn.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = popcorn.aifc; sourceTree = ""; }; + 45B74A6C2044AAB500CD42F8 /* bamboo.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = bamboo.aifc; sourceTree = ""; }; + 45B74A6D2044AAB500CD42F8 /* note.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = note.aifc; sourceTree = ""; }; + 45B74A6E2044AAB500CD42F8 /* complete-quiet.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = "complete-quiet.aifc"; sourceTree = ""; }; + 45B74A6F2044AAB500CD42F8 /* aurora.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = aurora.aifc; sourceTree = ""; }; + 45B74A702044AAB500CD42F8 /* circles-quiet.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = "circles-quiet.aifc"; sourceTree = ""; }; + 45B74A722044AAB600CD42F8 /* synth.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = synth.aifc; sourceTree = ""; }; + 45B74A732044AAB600CD42F8 /* input-quiet.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = "input-quiet.aifc"; sourceTree = ""; }; 45B9EE9A200E91FB005D2F2D /* MediaDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaDetailViewController.h; sourceTree = ""; }; 45B9EE9B200E91FB005D2F2D /* MediaDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MediaDetailViewController.m; sourceTree = ""; }; 45BB93371E688E14001E3939 /* UIDevice+featureSupport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIDevice+featureSupport.swift"; sourceTree = ""; }; @@ -1150,6 +1152,7 @@ 34074F54203D0722004596AE /* Sounds */ = { isa = PBXGroup; children = ( + 45A2F004204473A3002E978A /* NewMessage.aifc */, 34CF0783203E6B77005C4D61 /* busy_tone_ansi.caf */, 34CF0786203E6B78005C4D61 /* end_call_tone_cept.caf */, 34F77044203F5E4B00C7CBB7 /* messageReceivedClassic-quiet.caf */, @@ -1165,30 +1168,30 @@ 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 */, + 45B74A5B2044AAB300CD42F8 /* aurora-quiet.aifc */, + 45B74A6F2044AAB500CD42F8 /* aurora.aifc */, + 45B74A5F2044AAB400CD42F8 /* bamboo-quiet.aifc */, + 45B74A6C2044AAB500CD42F8 /* bamboo.aifc */, + 45B74A682044AAB500CD42F8 /* chord-quiet.aifc */, + 45B74A622044AAB400CD42F8 /* chord.aifc */, + 45B74A702044AAB500CD42F8 /* circles-quiet.aifc */, + 45B74A6A2044AAB500CD42F8 /* circles.aifc */, + 45B74A6E2044AAB500CD42F8 /* complete-quiet.aifc */, + 45B74A652044AAB400CD42F8 /* complete.aifc */, + 45B74A632044AAB400CD42F8 /* hello-quiet.aifc */, + 45B74A5E2044AAB400CD42F8 /* hello.aifc */, + 45B74A732044AAB600CD42F8 /* input-quiet.aifc */, + 45B74A602044AAB400CD42F8 /* input.aifc */, + 45B74A5D2044AAB400CD42F8 /* keys-quiet.aifc */, + 45B74A612044AAB400CD42F8 /* keys.aifc */, + 45B74A662044AAB400CD42F8 /* note-quiet.aifc */, + 45B74A6D2044AAB500CD42F8 /* note.aifc */, + 45B74A642044AAB400CD42F8 /* popcorn-quiet.aifc */, + 45B74A6B2044AAB500CD42F8 /* popcorn.aifc */, + 45B74A672044AAB500CD42F8 /* pulse-quiet.aifc */, + 45B74A692044AAB500CD42F8 /* pulse.aifc */, + 45B74A5C2044AAB300CD42F8 /* synth-quiet.aifc */, + 45B74A722044AAB600CD42F8 /* synth.aifc */, ); name = messageReceivedSounds; path = Signal/AudioFiles/messageReceivedSounds; @@ -2481,68 +2484,69 @@ buildActionMask = 2147483647; files = ( 34CF078A203E6B78005C4D61 /* end_call_tone_cept.caf in Resources */, + 45B74A8B2044AAB600CD42F8 /* synth.aifc in Resources */, + 45B74A7D2044AAB600CD42F8 /* popcorn-quiet.aifc in Resources */, + 45B74A792044AAB600CD42F8 /* input.aifc in Resources */, AD83FF3F1A73426500B5C81A /* audio_pause_button_blue.png 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 */, + 45B74A762044AAB600CD42F8 /* keys-quiet.aifc in Resources */, 34330A5C1E787A9800DF2FB9 /* dripicons-v2.ttf in Resources */, B633C5C41A1D190B0059AC12 /* mute_on@2x.png in Resources */, B633C5CE1A1D190B0059AC12 /* quit@2x.png in Resources */, - 34074FF1203E5436004596AE /* circles.m4r in Resources */, + 45B74A7F2044AAB600CD42F8 /* note-quiet.aifc in Resources */, + 45B74A752044AAB600CD42F8 /* synth-quiet.aifc in Resources */, AD83FF441A73426500B5C81A /* audio_pause_button.png 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 */, - 34F7705B203F5E6800C7CBB7 /* keys-quiet.caf in Resources */, - 34F77057203F5E6800C7CBB7 /* chord-quiet.caf in Resources */, + 45B74A872044AAB600CD42F8 /* complete-quiet.aifc in Resources */, B633C5D21A1D190B0059AC12 /* savephoto@2x.png in Resources */, + 45B74A7E2044AAB600CD42F8 /* complete.aifc in Resources */, + 45B74A802044AAB600CD42F8 /* pulse-quiet.aifc in Resources */, B10C9B611A7049EC00ECA2BF /* play_icon.png in Resources */, - 34074FF3203E5436004596AE /* hello.m4r in Resources */, - 34074FF9203E5436004596AE /* synth.m4r in Resources */, AD83FF401A73426500B5C81A /* audio_pause_button_blue@2x.png in Resources */, + 45B74A882044AAB600CD42F8 /* aurora.aifc 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 */, 34C3C78F2040A4F70000134C /* sonarping.mp3 in Resources */, - 34074FF7203E5436004596AE /* popcorn.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 */, + 45B74A7A2044AAB600CD42F8 /* keys.aifc in Resources */, + 45B74A772044AAB600CD42F8 /* hello.aifc in Resources */, + 45B74A812044AAB600CD42F8 /* chord-quiet.aifc in Resources */, 45CB2FA81CB7146C00E1B343 /* Launch Screen.storyboard in Resources */, 34B3F8781E8DF1700035BE1A /* ContactsPicker.xib in Resources */, + 45B74A892044AAB600CD42F8 /* circles-quiet.aifc in Resources */, B633C5C31A1D190B0059AC12 /* mute_off@2x.png in Resources */, - 34074FF2203E5436004596AE /* complete.m4r in Resources */, + 45B74A832044AAB600CD42F8 /* circles.aifc in Resources */, AD83FF411A73426500B5C81A /* audio_play_button_blue@2x.png in Resources */, 34C3C78D20409F320000134C /* Opening.m4r in Resources */, FC5CDF3A1A3393DD00B47253 /* warning_white@2x.png in Resources */, - 34074FF6203E5436004596AE /* note.m4r in Resources */, - 34F77056203F5E6800C7CBB7 /* aurora-quiet.caf in Resources */, B633C58D1A1D190B0059AC12 /* contact_default_feed.png in Resources */, B10C9B621A7049EC00ECA2BF /* play_icon@2x.png in Resources */, B633C5861A1D190B0059AC12 /* call@2x.png in Resources */, B67EBF5D19194AC60084CCFD /* Settings.bundle in Resources */, - 34F77058203F5E6800C7CBB7 /* circles-quiet.caf in Resources */, + 45B74A782044AAB600CD42F8 /* bamboo-quiet.aifc in Resources */, 3421FA59203F542E00275549 /* messageReceivedClassic.aifc in Resources */, - 34F7705A203F5E6800C7CBB7 /* pulse-quiet.caf in Resources */, - 34074FF5203E5436004596AE /* keys.m4r in Resources */, - 34F77059203F5E6800C7CBB7 /* input-quiet.caf in Resources */, + 45B74A852044AAB600CD42F8 /* bamboo.aifc in Resources */, B10C9B601A7049EC00ECA2BF /* pause_icon@2x.png in Resources */, FC9120411A39EFB70074545C /* qr@2x.png in Resources */, + 45B74A842044AAB600CD42F8 /* popcorn.aifc in Resources */, 34CF0787203E6B78005C4D61 /* busy_tone_ansi.caf in Resources */, - 34F7705C203F5E6800C7CBB7 /* hello-quiet.caf in Resources */, - 34074FF0203E5436004596AE /* chord.m4r in Resources */, - 34074FF4203E5436004596AE /* input.m4r in Resources */, B10C9B5F1A7049EC00ECA2BF /* pause_icon.png in Resources */, + 45B74A742044AAB600CD42F8 /* aurora-quiet.aifc in Resources */, + 45B74A7B2044AAB600CD42F8 /* chord.aifc in Resources */, AD83FF471A73428300B5C81A /* audio_play_button_blue.png in Resources */, - 34074FEE203E5436004596AE /* aurora.m4r in Resources */, + 45B74A862044AAB600CD42F8 /* note.aifc in Resources */, 34330A5E1E787BD800DF2FB9 /* ElegantIcons.ttf in Resources */, AD83FF451A73426500B5C81A /* audio_pause_button@2x.png in Resources */, + 45B74A7C2044AAB600CD42F8 /* hello-quiet.aifc in Resources */, + 45B74A8C2044AAB600CD42F8 /* input-quiet.aifc in Resources */, + 45B74A822044AAB600CD42F8 /* pulse.aifc in Resources */, + 45A2F005204473A3002E978A /* NewMessage.aifc in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Signal/AudioFiles/NewMessage.aifc b/Signal/AudioFiles/NewMessage.aifc index 0f8777861..694ff1c23 100644 Binary files a/Signal/AudioFiles/NewMessage.aifc and b/Signal/AudioFiles/NewMessage.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/aurora-quiet.aifc b/Signal/AudioFiles/messageReceivedSounds/aurora-quiet.aifc new file mode 100644 index 000000000..9b10bc9f0 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/aurora-quiet.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/aurora-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/aurora-quiet.caf deleted file mode 100644 index 118ab1d1f..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/aurora-quiet.caf and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/aurora.aifc b/Signal/AudioFiles/messageReceivedSounds/aurora.aifc new file mode 100644 index 000000000..d85c3c48e Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/aurora.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/aurora.m4r b/Signal/AudioFiles/messageReceivedSounds/aurora.m4r deleted file mode 100644 index a9dce516d..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/aurora.m4r and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/bamboo-quiet.aifc b/Signal/AudioFiles/messageReceivedSounds/bamboo-quiet.aifc new file mode 100644 index 000000000..431888d50 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/bamboo-quiet.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/bamboo-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/bamboo-quiet.caf deleted file mode 100644 index d28d7b0e6..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/bamboo-quiet.caf and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/bamboo.aifc b/Signal/AudioFiles/messageReceivedSounds/bamboo.aifc new file mode 100644 index 000000000..699e1e9f1 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/bamboo.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/bamboo.m4r b/Signal/AudioFiles/messageReceivedSounds/bamboo.m4r deleted file mode 100644 index b795043d8..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/bamboo.m4r and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/chord-quiet.aifc b/Signal/AudioFiles/messageReceivedSounds/chord-quiet.aifc new file mode 100644 index 000000000..65c2ea6fa Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/chord-quiet.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/chord-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/chord-quiet.caf deleted file mode 100644 index 81ea1dece..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/chord-quiet.caf and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/chord.aifc b/Signal/AudioFiles/messageReceivedSounds/chord.aifc new file mode 100644 index 000000000..c8a11cb22 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/chord.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/chord.m4r b/Signal/AudioFiles/messageReceivedSounds/chord.m4r deleted file mode 100644 index 89d9c567f..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/chord.m4r and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/circles-quiet.aifc b/Signal/AudioFiles/messageReceivedSounds/circles-quiet.aifc new file mode 100644 index 000000000..82b7488ba Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/circles-quiet.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/circles-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/circles-quiet.caf deleted file mode 100644 index 6a4c406ae..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/circles-quiet.caf and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/circles.aifc b/Signal/AudioFiles/messageReceivedSounds/circles.aifc new file mode 100644 index 000000000..aabb2f355 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/circles.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/circles.m4r b/Signal/AudioFiles/messageReceivedSounds/circles.m4r deleted file mode 100644 index 81e54a2c5..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/circles.m4r and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/complete-quiet.aifc b/Signal/AudioFiles/messageReceivedSounds/complete-quiet.aifc new file mode 100644 index 000000000..0bc6b1ef9 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/complete-quiet.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/complete-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/complete-quiet.caf deleted file mode 100644 index 0c381da52..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/complete-quiet.caf and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/complete.aifc b/Signal/AudioFiles/messageReceivedSounds/complete.aifc new file mode 100644 index 000000000..ea384946e Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/complete.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/complete.m4r b/Signal/AudioFiles/messageReceivedSounds/complete.m4r deleted file mode 100644 index 9bba6dd42..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/complete.m4r and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/hello-quiet.aifc b/Signal/AudioFiles/messageReceivedSounds/hello-quiet.aifc new file mode 100644 index 000000000..7f829ee40 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/hello-quiet.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/hello-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/hello-quiet.caf deleted file mode 100644 index 8760c323c..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/hello-quiet.caf and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/hello.aifc b/Signal/AudioFiles/messageReceivedSounds/hello.aifc new file mode 100644 index 000000000..b366f548a Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/hello.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/hello.m4r b/Signal/AudioFiles/messageReceivedSounds/hello.m4r deleted file mode 100644 index 9504e9a0d..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/hello.m4r and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/input-quiet.aifc b/Signal/AudioFiles/messageReceivedSounds/input-quiet.aifc new file mode 100644 index 000000000..547ad14ee Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/input-quiet.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/input-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/input-quiet.caf deleted file mode 100644 index 51136cbef..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/input-quiet.caf and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/input.aifc b/Signal/AudioFiles/messageReceivedSounds/input.aifc new file mode 100644 index 000000000..b155cd38b Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/input.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/input.m4r b/Signal/AudioFiles/messageReceivedSounds/input.m4r deleted file mode 100644 index 5e86616ba..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/input.m4r and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/keys-quiet.aifc b/Signal/AudioFiles/messageReceivedSounds/keys-quiet.aifc new file mode 100644 index 000000000..e7cf72ce1 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/keys-quiet.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/keys-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/keys-quiet.caf deleted file mode 100644 index 4c4ad2fbe..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/keys-quiet.caf and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/keys.aifc b/Signal/AudioFiles/messageReceivedSounds/keys.aifc new file mode 100644 index 000000000..b0d0bd7f9 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/keys.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/keys.m4r b/Signal/AudioFiles/messageReceivedSounds/keys.m4r deleted file mode 100644 index ebdcb00b6..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/keys.m4r and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/make-quiet.sh b/Signal/AudioFiles/messageReceivedSounds/make-quiet.sh index 80adc4fae..d1a35fde0 100755 --- a/Signal/AudioFiles/messageReceivedSounds/make-quiet.sh +++ b/Signal/AudioFiles/messageReceivedSounds/make-quiet.sh @@ -1,14 +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 +ffmpeg -i aurora.aifc -filter:a "volume=0.5" aurora-quiet.aifc +ffmpeg -i bamboo.aifc -filter:a "volume=0.5" bamboo-quiet.aifc +ffmpeg -i chord.aifc -filter:a "volume=0.5" chord-quiet.aifc +ffmpeg -i circles.aifc -filter:a "volume=0.5" circles-quiet.aifc +ffmpeg -i complete.aifc -filter:a "volume=0.5" complete-quiet.aifc +ffmpeg -i hello.aifc -filter:a "volume=0.5" hello-quiet.aifc +ffmpeg -i input.aifc -filter:a "volume=0.5" input-quiet.aifc +ffmpeg -i keys.aifc -filter:a "volume=0.5" keys-quiet.aifc +ffmpeg -i note.aifc -filter:a "volume=0.5" note-quiet.aifc +ffmpeg -i popcorn.aifc -filter:a "volume=0.5" popcorn-quiet.aifc +ffmpeg -i pulse.aifc -filter:a "volume=0.5" pulse-quiet.aifc +ffmpeg -i synth.aifc -filter:a "volume=0.5" synth-quiet.aifc diff --git a/Signal/AudioFiles/messageReceivedSounds/note-quiet.aifc b/Signal/AudioFiles/messageReceivedSounds/note-quiet.aifc new file mode 100644 index 000000000..d5eae0d6e Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/note-quiet.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/note-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/note-quiet.caf deleted file mode 100644 index 680c6ec76..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/note-quiet.caf and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/note.aifc b/Signal/AudioFiles/messageReceivedSounds/note.aifc new file mode 100644 index 000000000..0f8777861 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/note.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/note.m4r b/Signal/AudioFiles/messageReceivedSounds/note.m4r deleted file mode 100644 index 5e394836a..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/note.m4r and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/popcorn-quiet.aifc b/Signal/AudioFiles/messageReceivedSounds/popcorn-quiet.aifc new file mode 100644 index 000000000..52793bd33 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/popcorn-quiet.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/popcorn-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/popcorn-quiet.caf deleted file mode 100644 index d35190353..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/popcorn-quiet.caf and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/popcorn.aifc b/Signal/AudioFiles/messageReceivedSounds/popcorn.aifc new file mode 100644 index 000000000..5043bcf92 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/popcorn.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/popcorn.m4r b/Signal/AudioFiles/messageReceivedSounds/popcorn.m4r deleted file mode 100644 index 2c2ca24d1..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/popcorn.m4r and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/pulse-quiet.aifc b/Signal/AudioFiles/messageReceivedSounds/pulse-quiet.aifc new file mode 100644 index 000000000..01825ff29 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/pulse-quiet.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/pulse-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/pulse-quiet.caf deleted file mode 100644 index deab9e595..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/pulse-quiet.caf and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/pulse.aifc b/Signal/AudioFiles/messageReceivedSounds/pulse.aifc new file mode 100644 index 000000000..b0a17fd00 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/pulse.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/pulse.m4r b/Signal/AudioFiles/messageReceivedSounds/pulse.m4r deleted file mode 100644 index 8b3777e68..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/pulse.m4r and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/synth-quiet.aifc b/Signal/AudioFiles/messageReceivedSounds/synth-quiet.aifc new file mode 100644 index 000000000..9257ad8e7 Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/synth-quiet.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/synth-quiet.caf b/Signal/AudioFiles/messageReceivedSounds/synth-quiet.caf deleted file mode 100644 index e2de0021f..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/synth-quiet.caf and /dev/null differ diff --git a/Signal/AudioFiles/messageReceivedSounds/synth.aifc b/Signal/AudioFiles/messageReceivedSounds/synth.aifc new file mode 100644 index 000000000..0f82a46bb Binary files /dev/null and b/Signal/AudioFiles/messageReceivedSounds/synth.aifc differ diff --git a/Signal/AudioFiles/messageReceivedSounds/synth.m4r b/Signal/AudioFiles/messageReceivedSounds/synth.m4r deleted file mode 100644 index 78cfbe654..000000000 Binary files a/Signal/AudioFiles/messageReceivedSounds/synth.m4r and /dev/null differ diff --git a/Signal/src/ViewControllers/DebugUI/DebugUITableViewController.m b/Signal/src/ViewControllers/DebugUI/DebugUITableViewController.m index 2502f455b..620ecb481 100644 --- a/Signal/src/ViewControllers/DebugUI/DebugUITableViewController.m +++ b/Signal/src/ViewControllers/DebugUI/DebugUITableViewController.m @@ -102,9 +102,9 @@ NS_ASSUME_NONNULL_BEGIN }]; [subsectionItems addObject:sharedDataFileBrowserItem]; OWSTableItem *documentsFileBrowserItem = [OWSTableItem - disclosureItemWithText:@"📁 Document Dir" + disclosureItemWithText:@"📁 App Container" actionBlock:^{ - NSURL *baseURL = [NSURL URLWithString:[OWSFileSystem appDocumentDirectoryPath]]; + NSURL *baseURL = [NSURL URLWithString:[OWSFileSystem appLibraryDirectoryPath]]; DebugUIFileBrowser *fileBrowser = [[DebugUIFileBrowser alloc] initWithFileURL:baseURL]; [viewController.navigationController pushViewController:fileBrowser animated:YES]; }]; diff --git a/SignalMessaging/environment/OWSSounds.m b/SignalMessaging/environment/OWSSounds.m index d6c95cda2..9cec43dc6 100644 --- a/SignalMessaging/environment/OWSSounds.m +++ b/SignalMessaging/environment/OWSSounds.m @@ -4,6 +4,7 @@ #import "OWSSounds.h" #import "OWSAudioPlayer.h" +#import #import #import #import @@ -152,31 +153,31 @@ NSString *const kOWSSoundsStorageGlobalNotificationKey = @"kOWSSoundsStorageGlob // Notification Sounds case OWSSound_Aurora: - return (quiet ? @"aurora-quiet.caf" : @"aurora.m4r"); + return (quiet ? @"aurora-quiet.aifc" : @"aurora.aifc"); case OWSSound_Bamboo: - return (quiet ? @"bamboo-quiet.caf" : @"bamboo.m4r"); + return (quiet ? @"bamboo-quiet.aifc" : @"bamboo.aifc"); case OWSSound_Chord: - return (quiet ? @"chord-quiet.caf" : @"chord.m4r"); + return (quiet ? @"chord-quiet.aifc" : @"chord.aifc"); case OWSSound_Circles: - return (quiet ? @"circles-quiet.caf" : @"circles.m4r"); + return (quiet ? @"circles-quiet.aifc" : @"circles.aifc"); case OWSSound_Complete: - return (quiet ? @"complete-quiet.caf" : @"complete.m4r"); + return (quiet ? @"complete-quiet.aifc" : @"complete.aifc"); case OWSSound_Hello: - return (quiet ? @"hello-quiet.caf" : @"hello.m4r"); + return (quiet ? @"hello-quiet.aifc" : @"hello.aifc"); case OWSSound_Input: - return (quiet ? @"input-quiet.caf" : @"input.m4r"); + return (quiet ? @"input-quiet.aifc" : @"input.aifc"); case OWSSound_Keys: - return (quiet ? @"keys-quiet.caf" : @"keys.m4r"); + return (quiet ? @"keys-quiet.aifc" : @"keys.aifc"); case OWSSound_Note: - return (quiet ? @"note-quiet.caf" : @"note.m4r"); + return (quiet ? @"note-quiet.aifc" : @"note.aifc"); case OWSSound_Popcorn: - return (quiet ? @"popcorn-quiet.caf" : @"popcorn.m4r"); + return (quiet ? @"popcorn-quiet.aifc" : @"popcorn.aifc"); case OWSSound_Pulse: - return (quiet ? @"pulse-quiet.caf" : @"pulse.m4r"); + return (quiet ? @"pulse-quiet.aifc" : @"pulse.aifc"); case OWSSound_Synth: - return (quiet ? @"synth-quiet.caf" : @"synth.m4r"); + return (quiet ? @"synth-quiet.aifc" : @"synth.aifc"); case OWSSound_ClassicNotification: - return (quiet ? @"messageReceivedClassic-quiet.caf" : @"messageReceivedClassic.aifc"); + return (quiet ? @"messageReceivedClassic-quiet.aifc" : @"messageReceivedClassic.aifc"); // Ringtone Sounds case OWSSound_Opening: @@ -245,6 +246,36 @@ NSString *const kOWSSoundsStorageGlobalNotificationKey = @"kOWSSoundsStorageGlob + (void)setGlobalNotificationSound:(OWSSound)sound { + // Fallback push notifications play a sound specified by the server, but we don't want to store this configuration + // on the server. Instead, we create a file with the same name as the default to be played when receiving + // a fallback notification. + NSString *dirPath = [[OWSFileSystem appLibraryDirectoryPath] stringByAppendingPathComponent:@"Sounds"]; + [OWSFileSystem ensureDirectoryExists:dirPath]; + + // This name is specified in the payload by the Signal Service when requesting fallback push notifications. + NSString *kDefaultNotificationSoundFilename = @"NewMessage.aifc"; + NSString *defaultSoundPath = [dirPath stringByAppendingPathComponent:kDefaultNotificationSoundFilename]; + + DDLogDebug(@"%@ writing new default sound to %@", self.logTag, defaultSoundPath); + + NSURL *_Nullable soundURL = [OWSSounds soundURLForSound:sound quiet:NO]; + OWSAssert(soundURL); + + // Quick way to achieve an atomic "copy" operation that allows overwriting if the user has previously specified + // a default notification sound. + NSData *soundData = [NSData dataWithContentsOfURL:soundURL]; + BOOL success = [soundData writeToFile:defaultSoundPath atomically:YES]; + + // The globally configured sound the user has configured is unprotected, so that we can still play the sound if the + // user hasn't authenticated after power-cycling their device. + [OWSFileSystem protectFileOrFolderAtPath:defaultSoundPath fileProtectionType:NSFileProtectionNone]; + + if (!success) { + OWSProdLogAndFail( + @"%@ Unable to write new default sound data from: %@ to :%@", self.logTag, soundURL, defaultSoundPath); + return; + } + OWSSounds *instance = OWSSounds.sharedManager; [instance.dbConnection setObject:@(sound) forKey:kOWSSoundsStorageGlobalNotificationKey diff --git a/SignalServiceKit/src/Util/OWSFileSystem.h b/SignalServiceKit/src/Util/OWSFileSystem.h index c5c7da271..70ec5492b 100644 --- a/SignalServiceKit/src/Util/OWSFileSystem.h +++ b/SignalServiceKit/src/Util/OWSFileSystem.h @@ -9,10 +9,14 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)init NS_UNAVAILABLE; + (BOOL)protectFileOrFolderAtPath:(NSString *)path; ++ (BOOL)protectFileOrFolderAtPath:(NSString *)path fileProtectionType:(NSFileProtectionType)fileProtectionType; + + (BOOL)protectRecursiveContentsAtPath:(NSString *)path; + (NSString *)appDocumentDirectoryPath; ++ (NSString *)appLibraryDirectoryPath; + + (NSString *)appSharedDataDirectoryPath; + (NSString *)cachesDirectoryPath; diff --git a/SignalServiceKit/src/Util/OWSFileSystem.m b/SignalServiceKit/src/Util/OWSFileSystem.m index d4fcf5d17..15d04b0e9 100644 --- a/SignalServiceKit/src/Util/OWSFileSystem.m +++ b/SignalServiceKit/src/Util/OWSFileSystem.m @@ -37,6 +37,12 @@ NS_ASSUME_NONNULL_BEGIN } + (BOOL)protectFileOrFolderAtPath:(NSString *)path +{ + return + [self protectFileOrFolderAtPath:path fileProtectionType:NSFileProtectionCompleteUntilFirstUserAuthentication]; +} + ++ (BOOL)protectFileOrFolderAtPath:(NSString *)path fileProtectionType:(NSFileProtectionType)fileProtectionType { DDLogVerbose(@"%@ protecting file at path: %@", self.logTag, path); if (![NSFileManager.defaultManager fileExistsAtPath:path]) { @@ -44,7 +50,7 @@ NS_ASSUME_NONNULL_BEGIN } NSError *error; - NSDictionary *fileProtection = @{ NSFileProtectionKey : NSFileProtectionCompleteUntilFirstUserAuthentication }; + NSDictionary *fileProtection = @{ NSFileProtectionKey : fileProtectionType }; [[NSFileManager defaultManager] setAttributes:fileProtection ofItemAtPath:path error:&error]; NSDictionary *resourcesAttrs = @{ NSURLIsExcludedFromBackupKey : @YES }; @@ -86,6 +92,14 @@ NS_ASSUME_NONNULL_BEGIN } } ++ (NSString *)appLibraryDirectoryPath +{ + NSFileManager *fileManager = [NSFileManager defaultManager]; + NSURL *documentDirectoryURL = + [[fileManager URLsForDirectory:NSLibraryDirectory inDomains:NSUserDomainMask] lastObject]; + return [documentDirectoryURL path]; +} + + (NSString *)appDocumentDirectoryPath { NSFileManager *fileManager = [NSFileManager defaultManager];