diff --git a/CHANGES.rst b/CHANGES.rst index e5b2f8fd9..e436f8544 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -8,6 +8,12 @@ Changes to be released in next version * Settings: The notifications toggle no longer detects the system's "Deliver Quietly" configuration as disabled (#2368). * Settings: Adds a link to open the Settings app to quickly configure app notifications. * VoIP: Text & icon changes on call tiles (#4642). + * Voice messages: Stop recording and go into locked mode when the application becomes inactive (#4656) + * Voice messages: Allow voice message playback control from the iOS lock screen and control center (#4655) + * Voice messages: Improve audio recording quality + * Voice messages: Remove labs setting and enable them by default + * Room: Remove the green border from direct message room avatars (#4520). + * VoIP: Additional changes on call tiles (#4642). * Add support for Functional Members (#4609). šŸ› Bugfix @@ -23,7 +29,7 @@ Changes to be released in next version * Others - * + * Docs: Add reference to AppIdentifiers.xcconfig in INSTALL.md Changes in 1.4.9 (2021-08-03) ================================================= diff --git a/Config/BuildSettings.swift b/Config/BuildSettings.swift index 7e1a85db2..1ea613032 100644 --- a/Config/BuildSettings.swift +++ b/Config/BuildSettings.swift @@ -312,10 +312,6 @@ final class BuildSettings: NSObject { static let messageDetailsAllowCopyMedia: Bool = true static let messageDetailsAllowPasteMedia: Bool = true - // MARK: - Voice Message - - static let voiceMessagesEnabled = false - // MARK: - Notifications static let decryptNotificationsByDefault: Bool = true diff --git a/INSTALL.md b/INSTALL.md index ca983508a..f15b41281 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -77,7 +77,14 @@ Every time you change the `$matrixKitVersion` variable in the `Podfile`, you hav ## Build -## Generate Xcode project +### Configure project + +You may need to change the bundle identifier and app group identifier to be unique to get Xcode to build the app. Make sure to change the bundle identifier, application group identifier and app name in the `Config/AppIdentifiers.xcconfig` file to your new identifiers. + +More advanced build configuration can be found in the `project.yml` file and each target has a `target.yml` file in its respective folder. + + +### Generate Xcode project In order to get rid of git conflicts, the `Riot.xcodeproj` is not pushed into the git repository anymore but generated using `XcodeGen`. To generate the `xcodeproj` file simply run the following command line from the root folder : @@ -117,12 +124,6 @@ $ open Riot.xcworkspace **Note**: If you have multiple Xcode versions installed don't forget to use the right version of Command Line Tools when you are building the app. To check the Command Line Tools version go to `Xcode > Preferences > Locations > Command Line Tools` and check that the displayed version match your Xcode version. -### Configure project - -You may need to change the bundle identifier and app group identifier to be unique to get Xcode to build the app. Make sure to change the bundle identifier, application group identifier and app name in the `project.yml` file to your new identifiers. - -Each target has its own YAML file in the folder Targets folder. - ## Generate IPA diff --git a/Riot/Assets/en.lproj/Vector.strings b/Riot/Assets/en.lproj/Vector.strings index 44084ea76..e46028bc4 100644 --- a/Riot/Assets/en.lproj/Vector.strings +++ b/Riot/Assets/en.lproj/Vector.strings @@ -848,7 +848,8 @@ Tap the + to start adding people."; "event_formatter_message_edited_mention" = "(edited)"; "event_formatter_call_connecting" = "Connecting…"; "event_formatter_call_ringing" = "Ringing…"; -"event_formatter_call_has_ended" = "Call ended %@"; +"event_formatter_call_has_ended" = "Call ended"; +"event_formatter_call_has_ended_with_time" = "Call ended • %@"; "event_formatter_call_incoming_voice" = "Incoming voice call"; "event_formatter_call_incoming_video" = "Incoming video call"; "event_formatter_call_active_voice" = "Active voice call"; @@ -1691,3 +1692,4 @@ Tap the + to start adding people."; "voice_message_release_to_send" = "Hold to record, release to send"; "voice_message_remaining_recording_time" = "%@s left"; "voice_message_stop_locked_mode_recording" = "Tap on your recording to stop or listen"; +"voice_message_lock_screen_placeholder" = "Voice message"; diff --git a/Riot/Generated/Strings.swift b/Riot/Generated/Strings.swift index aaf25d400..680cd7848 100644 --- a/Riot/Generated/Strings.swift +++ b/Riot/Generated/Strings.swift @@ -1274,9 +1274,13 @@ internal enum VectorL10n { internal static var eventFormatterCallEndCall: String { return VectorL10n.tr("Vector", "event_formatter_call_end_call") } - /// Call ended %@ - internal static func eventFormatterCallHasEnded(_ p1: String) -> String { - return VectorL10n.tr("Vector", "event_formatter_call_has_ended", p1) + /// Call ended + internal static var eventFormatterCallHasEnded: String { + return VectorL10n.tr("Vector", "event_formatter_call_has_ended") + } + /// Call ended • %@ + internal static func eventFormatterCallHasEndedWithTime(_ p1: String) -> String { + return VectorL10n.tr("Vector", "event_formatter_call_has_ended_with_time", p1) } /// Incoming video call internal static var eventFormatterCallIncomingVideo: String { @@ -4898,6 +4902,10 @@ internal enum VectorL10n { internal static var voice: String { return VectorL10n.tr("Vector", "voice") } + /// Voice message + internal static var voiceMessageLockScreenPlaceholder: String { + return VectorL10n.tr("Vector", "voice_message_lock_screen_placeholder") + } /// Hold to record, release to send internal static var voiceMessageReleaseToSend: String { return VectorL10n.tr("Vector", "voice_message_release_to_send") diff --git a/Riot/Managers/Settings/RiotSettings.swift b/Riot/Managers/Settings/RiotSettings.swift index 7d41bc4df..2b60b3123 100644 --- a/Riot/Managers/Settings/RiotSettings.swift +++ b/Riot/Managers/Settings/RiotSettings.swift @@ -52,7 +52,6 @@ final class RiotSettings: NSObject { static let roomCreationScreenRoomIsPublic = "roomCreationScreenRoomIsPublic" static let allowInviteExernalUsers = "allowInviteExernalUsers" static let enableRingingForGroupCalls = "enableRingingForGroupCalls" - static let enableVoiceMessages = "enableVoiceMessages" static let roomSettingsScreenShowLowPriorityOption = "roomSettingsScreenShowLowPriorityOption" static let roomSettingsScreenShowDirectChatOption = "roomSettingsScreenShowDirectChatOption" static let roomSettingsScreenAllowChangingAccessSettings = "roomSettingsScreenAllowChangingAccessSettings" @@ -96,7 +95,6 @@ final class RiotSettings: NSObject { private override init() { super.init() - defaults.register(defaults: [UserDefaultsKeys.enableVoiceMessages: BuildSettings.voiceMessagesEnabled]) } // MARK: Servers @@ -221,14 +219,6 @@ final class RiotSettings: NSObject { } } - var enableVoiceMessages: Bool { - get { - return defaults.bool(forKey: UserDefaultsKeys.enableVoiceMessages) - } set { - defaults.set(newValue, forKey: UserDefaultsKeys.enableVoiceMessages) - } - } - // MARK: Calls /// Indicate if `allowStunServerFallback` settings has been set once. diff --git a/Riot/Modules/Common/Recents/Views/RecentTableViewCell.h b/Riot/Modules/Common/Recents/Views/RecentTableViewCell.h index d2e776b92..e3feee4e4 100644 --- a/Riot/Modules/Common/Recents/Views/RecentTableViewCell.h +++ b/Riot/Modules/Common/Recents/Views/RecentTableViewCell.h @@ -23,7 +23,6 @@ @property (weak, nonatomic) IBOutlet UIView *missedNotifAndUnreadIndicator; @property (weak, nonatomic) IBOutlet MXKImageView *roomAvatar; -@property (weak, nonatomic) IBOutlet UIView *directRoomBorderView; @property (weak, nonatomic) IBOutlet UIImageView *encryptedRoomIcon; @property (weak, nonatomic) IBOutlet UILabel *missedNotifAndUnreadBadgeLabel; diff --git a/Riot/Modules/Common/Recents/Views/RecentTableViewCell.m b/Riot/Modules/Common/Recents/Views/RecentTableViewCell.m index 37e70eed6..337c39cba 100644 --- a/Riot/Modules/Common/Recents/Views/RecentTableViewCell.m +++ b/Riot/Modules/Common/Recents/Views/RecentTableViewCell.m @@ -27,11 +27,6 @@ #import "MXRoomSummary+Riot.h" -#pragma mark - Defines & Constants - -static const CGFloat kDirectRoomBorderColorAlpha = 0.75; -static const CGFloat kDirectRoomBorderWidth = 3.0; - @implementation RecentTableViewCell #pragma mark - Class methods @@ -54,16 +49,6 @@ static const CGFloat kDirectRoomBorderWidth = 3.0; self.lastEventDate.textColor = ThemeService.shared.theme.textSecondaryColor; self.missedNotifAndUnreadBadgeLabel.textColor = ThemeService.shared.theme.baseTextPrimaryColor; - // Prepare direct room border - CGColorRef directRoomBorderColor = CGColorCreateCopyWithAlpha(ThemeService.shared.theme.tintColor.CGColor, kDirectRoomBorderColorAlpha); - - [self.directRoomBorderView.layer setCornerRadius:self.directRoomBorderView.frame.size.width / 2]; - self.directRoomBorderView.clipsToBounds = YES; - self.directRoomBorderView.layer.borderColor = directRoomBorderColor; - self.directRoomBorderView.layer.borderWidth = kDirectRoomBorderWidth; - - CFRelease(directRoomBorderColor); - self.roomAvatar.defaultBackgroundColor = [UIColor clearColor]; } @@ -138,8 +123,6 @@ static const CGFloat kDirectRoomBorderWidth = 3.0; // The room title is not bold anymore self.roomTitle.font = [UIFont systemFontOfSize:17 weight:UIFontWeightMedium]; } - - self.directRoomBorderView.hidden = !roomCellData.roomSummary.room.isDirect; [roomCellData.roomSummary setRoomAvatarImageIn:self.roomAvatar]; } diff --git a/Riot/Modules/Common/Recents/Views/RecentTableViewCell.xib b/Riot/Modules/Common/Recents/Views/RecentTableViewCell.xib index 8765ab55e..dec130d7d 100644 --- a/Riot/Modules/Common/Recents/Views/RecentTableViewCell.xib +++ b/Riot/Modules/Common/Recents/Views/RecentTableViewCell.xib @@ -1,9 +1,9 @@ - + - + @@ -34,14 +34,6 @@ -