diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj index bc28411d8..89f2f78b4 100644 --- a/Signal.xcodeproj/project.pbxproj +++ b/Signal.xcodeproj/project.pbxproj @@ -2493,45 +2493,29 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4503F1BE20470A5B00CEE724 /* classic-quiet.aifc in Resources */, 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 */, - 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 */, - 45B74A7F2044AAB600CD42F8 /* note-quiet.aifc in Resources */, - 45B74A752044AAB600CD42F8 /* synth-quiet.aifc in Resources */, AD83FF441A73426500B5C81A /* audio_pause_button.png in Resources */, B6F509971AA53F760068F56A /* Localizable.strings in Resources */, B633C59D1A1D190B0059AC12 /* endcall@2x.png in Resources */, FC5CDF391A3393DD00B47253 /* error_white@2x.png 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 */, 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 */, 34C3C78F2040A4F70000134C /* sonarping.mp3 in Resources */, 4517642A1DE939FD00EDB8B9 /* ContactCell.xib in Resources */, AD83FF431A73426500B5C81A /* audio_play_button@2x.png 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 */, - 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 */, @@ -2539,24 +2523,40 @@ B10C9B621A7049EC00ECA2BF /* play_icon@2x.png in Resources */, B633C5861A1D190B0059AC12 /* call@2x.png in Resources */, B67EBF5D19194AC60084CCFD /* Settings.bundle in Resources */, - 45B74A782044AAB600CD42F8 /* bamboo-quiet.aifc in Resources */, - 4503F1BF20470A5B00CEE724 /* classic.aifc 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 */, 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 */, - 45B74A862044AAB600CD42F8 /* note.aifc in Resources */, 34330A5E1E787BD800DF2FB9 /* ElegantIcons.ttf in Resources */, AD83FF451A73426500B5C81A /* audio_pause_button@2x.png in Resources */, + 45A2F005204473A3002E978A /* NewMessage.aifc in Resources */, + 45B74A882044AAB600CD42F8 /* aurora.aifc in Resources */, + 45B74A742044AAB600CD42F8 /* aurora-quiet.aifc in Resources */, + 45B74A852044AAB600CD42F8 /* bamboo.aifc in Resources */, + 45B74A782044AAB600CD42F8 /* bamboo-quiet.aifc in Resources */, + 45B74A7B2044AAB600CD42F8 /* chord.aifc in Resources */, + 45B74A812044AAB600CD42F8 /* chord-quiet.aifc in Resources */, + 45B74A832044AAB600CD42F8 /* circles.aifc in Resources */, + 45B74A892044AAB600CD42F8 /* circles-quiet.aifc in Resources */, + 4503F1BF20470A5B00CEE724 /* classic.aifc in Resources */, + 4503F1BE20470A5B00CEE724 /* classic-quiet.aifc in Resources */, + 45B74A7E2044AAB600CD42F8 /* complete.aifc in Resources */, + 45B74A872044AAB600CD42F8 /* complete-quiet.aifc in Resources */, + 45B74A772044AAB600CD42F8 /* hello.aifc in Resources */, 45B74A7C2044AAB600CD42F8 /* hello-quiet.aifc in Resources */, + 45B74A792044AAB600CD42F8 /* input.aifc in Resources */, 45B74A8C2044AAB600CD42F8 /* input-quiet.aifc in Resources */, + 45B74A7A2044AAB600CD42F8 /* keys.aifc in Resources */, + 45B74A762044AAB600CD42F8 /* keys-quiet.aifc in Resources */, + 45B74A862044AAB600CD42F8 /* note.aifc in Resources */, + 45B74A7F2044AAB600CD42F8 /* note-quiet.aifc in Resources */, + 45B74A842044AAB600CD42F8 /* popcorn.aifc in Resources */, + 45B74A7D2044AAB600CD42F8 /* popcorn-quiet.aifc in Resources */, 45B74A822044AAB600CD42F8 /* pulse.aifc in Resources */, - 45A2F005204473A3002E978A /* NewMessage.aifc in Resources */, + 45B74A802044AAB600CD42F8 /* pulse-quiet.aifc in Resources */, + 45B74A8B2044AAB600CD42F8 /* synth.aifc in Resources */, + 45B74A752044AAB600CD42F8 /* synth-quiet.aifc in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Signal/AudioFiles/NewMessage.aifc b/Signal/AudioFiles/NewMessage.aifc index 694ff1c23..0f8777861 100644 Binary files a/Signal/AudioFiles/NewMessage.aifc and b/Signal/AudioFiles/NewMessage.aifc differ diff --git a/Signal/Signal-Info.plist b/Signal/Signal-Info.plist index 8caf76b20..151ecf1bd 100644 --- a/Signal/Signal-Info.plist +++ b/Signal/Signal-Info.plist @@ -38,7 +38,7 @@ CFBundleVersion - 2.21.0.1 + 2.21.0.4 ITSAppUsesNonExemptEncryption LOGS_EMAIL diff --git a/Signal/src/ViewControllers/HomeViewController.m b/Signal/src/ViewControllers/HomeViewController.m index 0943158d2..fd6148776 100644 --- a/Signal/src/ViewControllers/HomeViewController.m +++ b/Signal/src/ViewControllers/HomeViewController.m @@ -47,7 +47,7 @@ typedef NS_ENUM(NSInteger, CellState) { kArchiveState, kInboxState }; @property (nonatomic) UISegmentedControl *segmentedControl; @property (nonatomic) id previewingContext; @property (nonatomic) NSSet *blockedPhoneNumberSet; -@property (nonatomic) BOOL viewHasEverAppeared; +@property (nonatomic) BOOL hasShownAnyUnseenUpgradeExperiences; @property (nonatomic) BOOL isViewVisible; @property (nonatomic) BOOL isAppInBackground; @@ -510,15 +510,18 @@ typedef NS_ENUM(NSInteger, CellState) { kArchiveState, kInboxState }; }); }]; } -} - -- (void)viewDidAppear:(BOOL)animated -{ - [super viewDidAppear:animated]; - - if (!self.viewHasEverAppeared) { - self.viewHasEverAppeared = YES; - [self displayAnyUnseenUpgradeExperience]; + + // We want to show the user the upgrade experience as soon as the app is visible to them. + // It cannot go in viewDidAppear, which is called while the app is in the background if + // we were launched from a voip notification. + if (!self.hasShownAnyUnseenUpgradeExperiences) { + dispatch_async(dispatch_get_main_queue(), ^{ + if ([[UIApplication sharedApplication] applicationState] != UIApplicationStateActive) { + return; + } + [self displayAnyUnseenUpgradeExperience]; + self.hasShownAnyUnseenUpgradeExperiences = YES; + }); } } diff --git a/SignalShareExtension/Info.plist b/SignalShareExtension/Info.plist index b81d29e0d..58d671728 100644 --- a/SignalShareExtension/Info.plist +++ b/SignalShareExtension/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString 2.21.0 CFBundleVersion - 2.21.0.1 + 2.21.0.4 ITSAppUsesNonExemptEncryption NSAppTransportSecurity