Merge pull request #5700 from vector-im/release/1.8.3/release

Release 1.8.3
This commit is contained in:
Doug 2022-02-25 11:39:41 +00:00 committed by GitHub
commit 6bffc764d1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 69 additions and 39 deletions

View file

@ -1,3 +1,17 @@
## Changes in 1.8.3 (2022-02-25)
🙌 Improvements
- Upgrade MatrixSDK version ([v0.22.4](https://github.com/matrix-org/matrix-ios-sdk/releases/tag/v0.22.4)).
🐛 Bugfixes
- Unified Search: Fix a bug where the room directory wasn't working. ([#5672](https://github.com/vector-im/element-ios/issues/5672))
- Fixed crashes on implicitly unwrapped optionals in the PlainRoomTimelineCellDecorator. ([#5673](https://github.com/vector-im/element-ios/issues/5673))
- L10n: Fix defaulting to English language ([#5674](https://github.com/vector-im/element-ios/issues/5674))
- RoomDataSource: Do not reload room data source on back pagination for new threads. ([#5694](https://github.com/vector-im/element-ios/issues/5694))
## Changes in 1.8.2 (2022-02-22)
✨ Features

View file

@ -15,5 +15,5 @@
//
// Version
MARKETING_VERSION = 1.8.2
CURRENT_PROJECT_VERSION = 1.8.2
MARKETING_VERSION = 1.8.3
CURRENT_PROJECT_VERSION = 1.8.3

View file

@ -13,7 +13,7 @@ use_frameworks!
# - `{ :specHash => {sdk spec hash}` to depend on specific pod options (:git => …, :podspec => …) for MatrixSDK repo. Used by Fastfile during CI
#
# Warning: our internal tooling depends on the name of this variable name, so be sure not to change it
$matrixSDKVersion = '= 0.22.2'
$matrixSDKVersion = '= 0.22.4'
# $matrixSDKVersion = :local
# $matrixSDKVersion = { :branch => 'develop'}
# $matrixSDKVersion = { :specHash => { git: 'https://git.io/fork123', branch: 'fix' } }

View file

@ -369,6 +369,24 @@ NSString *const AppDelegateUniversalLinkDidChangeNotification = @"AppDelegateUni
// Create message sound
NSURL *messageSoundURL = [[NSBundle mainBundle] URLForResource:@"message" withExtension:@"caf"];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)messageSoundURL, &_messageSound);
// Set up runtime language and fallback by considering the userDefaults object shared within the application group.
NSUserDefaults *sharedUserDefaults = [MXKAppSettings standardAppSettings].sharedUserDefaults;
NSString *language = [sharedUserDefaults objectForKey:@"appLanguage"];
if (!language)
{
// Check whether a langage was only defined at the Riot application level.
language = [[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"];
if (language)
{
// Move this setting into the shared userDefaults object to apply it to the extensions.
[sharedUserDefaults setObject:language forKey:@"appLanguage"];
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"appLanguage"];
}
}
[NSBundle mxk_setLanguage:language];
[NSBundle mxk_setFallbackLanguage:@"en"];
// Set app info now as Mac (Designed for iPad) accesses it before didFinishLaunching is called
self.appInfo = AppInfo.current;
@ -411,24 +429,6 @@ NSString *const AppDelegateUniversalLinkDidChangeNotification = @"AppDelegateUni
// Set up theme
ThemeService.shared.themeId = RiotSettings.shared.userInterfaceTheme;
// Set up runtime language and fallback by considering the userDefaults object shared within the application group.
NSUserDefaults *sharedUserDefaults = [MXKAppSettings standardAppSettings].sharedUserDefaults;
NSString *language = [sharedUserDefaults objectForKey:@"appLanguage"];
if (!language)
{
// Check whether a langage was only defined at the Riot application level.
language = [[NSUserDefaults standardUserDefaults] objectForKey:@"appLanguage"];
if (language)
{
// Move this setting into the shared userDefaults object to apply it to the extensions.
[sharedUserDefaults setObject:language forKey:@"appLanguage"];
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"appLanguage"];
}
}
[NSBundle mxk_setLanguage:language];
[NSBundle mxk_setFallbackLanguage:@"en"];
mxSessionArray = [NSMutableArray array];
callEventsListeners = [NSMutableDictionary dictionary];

View file

@ -35,6 +35,18 @@
@implementation UnifiedSearchRecentsDataSource
- (instancetype)initWithMatrixSession:(MXSession *)mxSession recentsListService:(id<RecentsListServiceProtocol>)recentsListService
{
self = [super initWithMatrixSession:mxSession recentsListService:recentsListService];
if (self)
{
searchedRoomIdOrAliasSection = -1;
_hideRecents = NO;
}
return self;
}
#pragma mark -
- (void)setPublicRoomsDirectoryDataSource:(PublicRoomsDirectoryDataSource *)publicRoomsDirectoryDataSource

View file

@ -29,7 +29,7 @@
const CGFloat kTypingCellHeight = 24;
@interface RoomDataSource() <BubbleReactionsViewModelDelegate, URLPreviewViewDelegate, ThreadSummaryViewDelegate>
@interface RoomDataSource() <BubbleReactionsViewModelDelegate, URLPreviewViewDelegate, ThreadSummaryViewDelegate, MXThreadingServiceDelegate>
{
// Observe kThemeServiceDidChangeThemeNotification to handle user interface theme change.
id kThemeServiceDidChangeThemeNotificationObserver;
@ -92,12 +92,9 @@ const CGFloat kTypingCellHeight = 24;
[self reload];
}];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(newThreadCreated:)
name:MXThreadingService.newThreadCreated
object:nil];
[matrixSession.threadingService addDelegate:self];
[self registerKeyVerificationRequestNotification];
[self registerKeyVerificationTransactionNotification];
[self registerTrustLevelDidChangeNotifications];
@ -177,6 +174,8 @@ const CGFloat kTypingCellHeight = 24;
{
[[NSNotificationCenter defaultCenter] removeObserver:self.keyVerificationTransactionDidChangeNotificationObserver];
}
[self.mxSession.threadingService removeDelegate:self];
[super destroy];
}
@ -973,15 +972,20 @@ const CGFloat kTypingCellHeight = 24;
cell.attachmentView.accessibilityLabel = nil;
}
#pragma mark - Threads
#pragma mark - MXThreadingServiceDelegate
- (void)newThreadCreated:(NSNotification *)notification
- (void)threadingService:(MXThreadingService *)service didCreateNewThread:(MXThread *)thread direction:(MXTimelineDirection)direction
{
if (self.threadId)
{
// no need to reload the thread screen
return;
}
if (direction == MXTimelineDirectionBackwards)
{
// no need to reload when paginating back
return;
}
NSUInteger count = 0;
@synchronized (bubbles)
{

View file

@ -124,7 +124,7 @@ class BaseRoomCell: MXKRoomBubbleTableViewCell, BaseRoomCellProtocol {
}
}
override var readMarkerViewLeadingConstraint: NSLayoutConstraint! {
override var readMarkerViewLeadingConstraint: NSLayoutConstraint? {
get {
if self is RoomCellReadMarkerDisplayable {
return self.roomCellContentView?.readMarkerViewLeadingConstraint
@ -141,7 +141,7 @@ class BaseRoomCell: MXKRoomBubbleTableViewCell, BaseRoomCellProtocol {
}
}
override var readMarkerViewTrailingConstraint: NSLayoutConstraint! {
override var readMarkerViewTrailingConstraint: NSLayoutConstraint? {
get {
if self is RoomCellReadMarkerDisplayable {
return self.roomCellContentView?.readMarkerViewTrailingConstraint

View file

@ -228,11 +228,11 @@ extern NSString *const kMXKRoomBubbleCellUrlItemInteraction;
/**
The read marker view and its layout constraints (nil by default).
*/
@property (nonatomic) UIView *readMarkerView;
@property (nonatomic) NSLayoutConstraint *readMarkerViewTopConstraint;
@property (nonatomic) NSLayoutConstraint *readMarkerViewLeadingConstraint;
@property (nonatomic) NSLayoutConstraint *readMarkerViewTrailingConstraint;
@property (nonatomic) NSLayoutConstraint *readMarkerViewHeightConstraint;
@property (nonatomic, nullable) UIView *readMarkerView;
@property (nonatomic, nullable) NSLayoutConstraint *readMarkerViewTopConstraint;
@property (nonatomic, nullable) NSLayoutConstraint *readMarkerViewLeadingConstraint;
@property (nonatomic, nullable) NSLayoutConstraint *readMarkerViewTrailingConstraint;
@property (nonatomic, nullable) NSLayoutConstraint *readMarkerViewHeightConstraint;
/**
The potential webview used to render an attachment (for example an animated gif).

View file

@ -273,8 +273,8 @@ class PlainRoomTimelineCellDecorator: RoomTimelineCellDecorator {
let readMarkerContainerViewHalfWidth = readMarkerContainerView.frame.size.width/2
cell.readMarkerViewLeadingConstraint.constant = readMarkerContainerViewHalfWidth
cell.readMarkerViewTrailingConstraint.constant = -readMarkerContainerViewHalfWidth
cell.readMarkerViewLeadingConstraint?.constant = readMarkerContainerViewHalfWidth
cell.readMarkerViewTrailingConstraint?.constant = -readMarkerContainerViewHalfWidth
UIView.animate(withDuration: 1.5,
delay: 0.3,