diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj index dea77a5f2..834fd36a6 100644 --- a/Signal.xcodeproj/project.pbxproj +++ b/Signal.xcodeproj/project.pbxproj @@ -306,6 +306,7 @@ B60FB9AD1A46F831006A5A66 /* UIImage+contentTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = B60FB9AC1A46F831006A5A66 /* UIImage+contentTypes.m */; }; B60FB9B01A4711D4006A5A66 /* TSAttachmentEncryptionResult.m in Sources */ = {isa = PBXBuildFile; fileRef = B60FB9AF1A4711D4006A5A66 /* TSAttachmentEncryptionResult.m */; }; B617E9241A9F962600753F00 /* MessagePaddingTests.m in Sources */ = {isa = PBXBuildFile; fileRef = B617E9231A9F962600753F00 /* MessagePaddingTests.m */; }; + B625CD561ABB589C00E8B23C /* NewMessage.aifc in Resources */ = {isa = PBXBuildFile; fileRef = B625CD551ABB589C00E8B23C /* NewMessage.aifc */; }; B62D53F71A23CCAD009AAF82 /* TSMessageAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = B62D53F61A23CCAD009AAF82 /* TSMessageAdapter.m */; }; B62EFBEC1A91352F0072ADD3 /* TSInvalidIdentityKeyErrorMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = B62EFBE71A91352F0072ADD3 /* TSInvalidIdentityKeyErrorMessage.m */; }; B62EFBED1A91352F0072ADD3 /* TSInvalidIdentityKeyReceivingErrorMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = B62EFBE91A91352F0072ADD3 /* TSInvalidIdentityKeyReceivingErrorMessage.m */; }; @@ -876,6 +877,7 @@ B60FB9AE1A4711D4006A5A66 /* TSAttachmentEncryptionResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TSAttachmentEncryptionResult.h; sourceTree = ""; }; B60FB9AF1A4711D4006A5A66 /* TSAttachmentEncryptionResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TSAttachmentEncryptionResult.m; sourceTree = ""; }; B617E9231A9F962600753F00 /* MessagePaddingTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MessagePaddingTests.m; sourceTree = ""; }; + B625CD551ABB589C00E8B23C /* NewMessage.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = NewMessage.aifc; sourceTree = ""; }; B62D53F51A23CCAD009AAF82 /* TSMessageAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TSMessageAdapter.h; sourceTree = ""; }; B62D53F61A23CCAD009AAF82 /* TSMessageAdapter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TSMessageAdapter.m; sourceTree = ""; }; B62EFBE61A91352F0072ADD3 /* TSInvalidIdentityKeyErrorMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TSInvalidIdentityKeyErrorMessage.h; sourceTree = ""; }; @@ -2509,6 +2511,7 @@ isa = PBXGroup; children = ( 70B8FEE11909FE360042E3F0 /* 171756__nenadsimic__picked-coin-echo-2.wav */, + B625CD551ABB589C00E8B23C /* NewMessage.aifc */, E18AB40718A05754001A532A /* busy.mp3 */, E18AB40818A05754001A532A /* completed.mp3 */, E18AB40918A05754001A532A /* failure.mp3 */, @@ -2850,6 +2853,7 @@ E1370BE118A0686C00826894 /* completed.mp3 in Resources */, E1370BE218A0686C00826894 /* failure.mp3 in Resources */, E1370BE318A0686C00826894 /* handshake.mp3 in Resources */, + B625CD561ABB589C00E8B23C /* NewMessage.aifc in Resources */, B633C58D1A1D190B0059AC12 /* contact_default_feed.png in Resources */, B10C9B621A7049EC00ECA2BF /* play_icon@2x.png in Resources */, B633C5861A1D190B0059AC12 /* call@2x.png in Resources */, diff --git a/Signal/AudioFiles/NewMessage.aifc b/Signal/AudioFiles/NewMessage.aifc new file mode 100644 index 000000000..694ff1c23 Binary files /dev/null and b/Signal/AudioFiles/NewMessage.aifc differ diff --git a/Signal/src/textsecure/Messages/TSMessagesManager.m b/Signal/src/textsecure/Messages/TSMessagesManager.m index 504123b0f..394de0e17 100644 --- a/Signal/src/textsecure/Messages/TSMessagesManager.m +++ b/Signal/src/textsecure/Messages/TSMessagesManager.m @@ -8,6 +8,7 @@ #import "TSMessagesManager.h" +#import #import #import @@ -45,6 +46,12 @@ #define ddLogLevel LOG_LEVEL_VERBOSE +@interface TSMessagesManager () + +@property SystemSoundID newMessageSound; + +@end + @implementation TSMessagesManager + (instancetype)sharedManager { @@ -60,7 +67,9 @@ self = [super init]; if (self) { - _dbConnection = [TSStorageManager sharedManager].newDatabaseConnection; + _dbConnection = [TSStorageManager sharedManager].newDatabaseConnection; + NSURL *newMessageSound = [NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"NewMessage" ofType:@"aifc"]]; + AudioServicesCreateSystemSoundID((__bridge CFURLRef)newMessageSound, &_newMessageSound);; } return self; @@ -390,8 +399,12 @@ }]; } -- (void)notifyUserForIncomingMessage:(TSIncomingMessage*)message from:(NSString*)name{ - //TODO: Warn user when message is received? +- (void)notifyUserForIncomingMessage:(TSIncomingMessage*)message from:(NSString*)name { + AudioServicesPlayAlertSound(_newMessageSound); +} + +- (void)dealloc { + AudioServicesDisposeSystemSoundID(_newMessageSound); } @end