mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-28 23:32:41 +00:00
Merge pull request #3717 from vector-im/release/1.0.14/release
Release 1.0.14
This commit is contained in:
commit
8376ff577b
18 changed files with 118 additions and 36 deletions
33
CHANGES.rst
33
CHANGES.rst
|
@ -1,3 +1,35 @@
|
||||||
|
Changes in 1.0.14 (2020-10-02)
|
||||||
|
=================================================
|
||||||
|
|
||||||
|
✨ Features
|
||||||
|
*
|
||||||
|
|
||||||
|
🙌 Improvements
|
||||||
|
* i18n: Add Estonian (et).
|
||||||
|
* MXSession: Make vc_canSetupSecureBackup reusable.
|
||||||
|
|
||||||
|
🐛 Bugfix
|
||||||
|
* Settings: New phone number is invisible in dark theme (#3218).
|
||||||
|
* Handle call actions on other devices on VoIP pushes (#3677).
|
||||||
|
* Fix "Unable to open the link" error when using non-Safari browsers (#3673).
|
||||||
|
* Biometrics: Handle retry case.
|
||||||
|
* Room: Remove membership events from room creation modal (#3679).
|
||||||
|
|
||||||
|
⚠️ API Changes
|
||||||
|
*
|
||||||
|
|
||||||
|
🗣 Translations
|
||||||
|
*
|
||||||
|
|
||||||
|
🧱 Build
|
||||||
|
*
|
||||||
|
|
||||||
|
Others
|
||||||
|
*
|
||||||
|
|
||||||
|
Improvements:
|
||||||
|
* Upgrade MatrixKit version ([v0.12.22](https://github.com/matrix-org/matrix-ios-kit/releases/tag/v0.12.22)).
|
||||||
|
|
||||||
Changes in 1.0.13 (2020-09-30)
|
Changes in 1.0.13 (2020-09-30)
|
||||||
=================================================
|
=================================================
|
||||||
|
|
||||||
|
@ -22,6 +54,7 @@ Changes in 1.0.13 (2020-09-30)
|
||||||
* Device verification: Fix inactive cancel action issue in self verification flow.
|
* Device verification: Fix inactive cancel action issue in self verification flow.
|
||||||
* Fix floating action buttons' images.
|
* Fix floating action buttons' images.
|
||||||
* Various theme fixes.
|
* Various theme fixes.
|
||||||
|
* Room: Fix message not shown after push issue (#3672).
|
||||||
|
|
||||||
⚠️ API Changes
|
⚠️ API Changes
|
||||||
*
|
*
|
||||||
|
|
2
Podfile
2
Podfile
|
@ -11,7 +11,7 @@ use_frameworks!
|
||||||
# - `{ {kit spec hash} => {sdk spec hash}` to depend on specific pod options (:git => …, :podspec => …) for each repo. Used by Fastfile during CI
|
# - `{ {kit spec hash} => {sdk spec hash}` to depend on specific pod options (:git => …, :podspec => …) for each 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
|
# Warning: our internal tooling depends on the name of this variable name, so be sure not to change it
|
||||||
$matrixKitVersion = '= 0.12.21'
|
$matrixKitVersion = '= 0.12.22'
|
||||||
# $matrixKitVersion = :local
|
# $matrixKitVersion = :local
|
||||||
# $matrixKitVersion = {'develop' => 'develop'}
|
# $matrixKitVersion = {'develop' => 'develop'}
|
||||||
|
|
||||||
|
|
|
@ -1957,6 +1957,9 @@
|
||||||
B1E5368821FB1E20001F3AFF /* UIButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIButton.swift; sourceTree = "<group>"; };
|
B1E5368821FB1E20001F3AFF /* UIButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIButton.swift; sourceTree = "<group>"; };
|
||||||
B1E5368C21FB7245001F3AFF /* KeyBackupRecoverFromPassphraseViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyBackupRecoverFromPassphraseViewController.swift; sourceTree = "<group>"; };
|
B1E5368C21FB7245001F3AFF /* KeyBackupRecoverFromPassphraseViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyBackupRecoverFromPassphraseViewController.swift; sourceTree = "<group>"; };
|
||||||
B1E5368E21FB7258001F3AFF /* KeyBackupRecoverFromPassphraseViewController.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = KeyBackupRecoverFromPassphraseViewController.storyboard; sourceTree = "<group>"; };
|
B1E5368E21FB7258001F3AFF /* KeyBackupRecoverFromPassphraseViewController.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = KeyBackupRecoverFromPassphraseViewController.storyboard; sourceTree = "<group>"; };
|
||||||
|
B1EDFDF32525E9690020EEFF /* et */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = et; path = et.lproj/Vector.strings; sourceTree = "<group>"; };
|
||||||
|
B1EDFDF42525E9690020EEFF /* et */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = et; path = et.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
|
B1EDFDF52525E96A0020EEFF /* et */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = et; path = et.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
B1FDF55F21F5FE5500BA3834 /* KeyBackupSetupPassphraseViewAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyBackupSetupPassphraseViewAction.swift; sourceTree = "<group>"; };
|
B1FDF55F21F5FE5500BA3834 /* KeyBackupSetupPassphraseViewAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyBackupSetupPassphraseViewAction.swift; sourceTree = "<group>"; };
|
||||||
B43DC75D1590BB8A4243BD4D /* Pods-RiotPods-Riot.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RiotPods-Riot.release.xcconfig"; path = "Target Support Files/Pods-RiotPods-Riot/Pods-RiotPods-Riot.release.xcconfig"; sourceTree = "<group>"; };
|
B43DC75D1590BB8A4243BD4D /* Pods-RiotPods-Riot.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RiotPods-Riot.release.xcconfig"; path = "Target Support Files/Pods-RiotPods-Riot/Pods-RiotPods-Riot.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
BABB6681FBD79219B1213D6C /* Pods-RiotTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RiotTests.debug.xcconfig"; path = "Target Support Files/Pods-RiotTests/Pods-RiotTests.debug.xcconfig"; sourceTree = "<group>"; };
|
BABB6681FBD79219B1213D6C /* Pods-RiotTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RiotTests.debug.xcconfig"; path = "Target Support Files/Pods-RiotTests/Pods-RiotTests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
@ -5666,6 +5669,7 @@
|
||||||
pl,
|
pl,
|
||||||
cy,
|
cy,
|
||||||
it,
|
it,
|
||||||
|
et,
|
||||||
);
|
);
|
||||||
mainGroup = F094A9991B78D8F000B1FBBF;
|
mainGroup = F094A9991B78D8F000B1FBBF;
|
||||||
productRefGroup = F094A9A31B78D8F000B1FBBF /* Products */;
|
productRefGroup = F094A9A31B78D8F000B1FBBF /* Products */;
|
||||||
|
@ -6928,6 +6932,7 @@
|
||||||
32DAF8DD231813E100654A44 /* pl */,
|
32DAF8DD231813E100654A44 /* pl */,
|
||||||
325789A7237AB297009388E6 /* cy */,
|
325789A7237AB297009388E6 /* cy */,
|
||||||
B1C6FFE923954D4B0055347B /* it */,
|
B1C6FFE923954D4B0055347B /* it */,
|
||||||
|
B1EDFDF32525E9690020EEFF /* et */,
|
||||||
);
|
);
|
||||||
name = Vector.strings;
|
name = Vector.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -6953,6 +6958,7 @@
|
||||||
32DAF8DB231813C800654A44 /* pl */,
|
32DAF8DB231813C800654A44 /* pl */,
|
||||||
325789A5237AB241009388E6 /* cy */,
|
325789A5237AB241009388E6 /* cy */,
|
||||||
B1C6FFE723954CE70055347B /* it */,
|
B1C6FFE723954CE70055347B /* it */,
|
||||||
|
B1EDFDF42525E9690020EEFF /* et */,
|
||||||
);
|
);
|
||||||
name = InfoPlist.strings;
|
name = InfoPlist.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -6978,6 +6984,7 @@
|
||||||
32DAF8DC231813D500654A44 /* pl */,
|
32DAF8DC231813D500654A44 /* pl */,
|
||||||
325789A6237AB27F009388E6 /* cy */,
|
325789A6237AB27F009388E6 /* cy */,
|
||||||
B1C6FFE823954D3B0055347B /* it */,
|
B1C6FFE823954D3B0055347B /* it */,
|
||||||
|
B1EDFDF52525E96A0020EEFF /* et */,
|
||||||
);
|
);
|
||||||
name = Localizable.strings;
|
name = Localizable.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -7270,7 +7277,7 @@
|
||||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||||
COPY_PHASE_STRIP = NO;
|
COPY_PHASE_STRIP = NO;
|
||||||
CURRENT_PROJECT_VERSION = 1.0.13;
|
CURRENT_PROJECT_VERSION = 1.0.14;
|
||||||
DEFINES_MODULE = YES;
|
DEFINES_MODULE = YES;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
ENABLE_TESTABILITY = YES;
|
ENABLE_TESTABILITY = YES;
|
||||||
|
@ -7290,7 +7297,7 @@
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||||
MARKETING_VERSION = 1.0.13;
|
MARKETING_VERSION = 1.0.14;
|
||||||
MTL_ENABLE_DEBUG_INFO = YES;
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
|
@ -7329,7 +7336,7 @@
|
||||||
CODE_SIGN_IDENTITY = "iPhone Distribution";
|
CODE_SIGN_IDENTITY = "iPhone Distribution";
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||||
COPY_PHASE_STRIP = YES;
|
COPY_PHASE_STRIP = YES;
|
||||||
CURRENT_PROJECT_VERSION = 1.0.13;
|
CURRENT_PROJECT_VERSION = 1.0.14;
|
||||||
DEFINES_MODULE = YES;
|
DEFINES_MODULE = YES;
|
||||||
ENABLE_NS_ASSERTIONS = NO;
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||||
|
@ -7342,7 +7349,7 @@
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||||
MARKETING_VERSION = 1.0.13;
|
MARKETING_VERSION = 1.0.14;
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
SWIFT_COMPILATION_MODE = wholemodule;
|
SWIFT_COMPILATION_MODE = wholemodule;
|
||||||
|
|
|
@ -88,12 +88,6 @@
|
||||||
return NO;
|
return NO;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!self.crypto.backup.hasKeysToBackup)
|
|
||||||
{
|
|
||||||
// Do not create secure key backup if they are no keys to backup.
|
|
||||||
return NO;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Accept to create a setup only if we have the 3 cross-signing keys
|
// Accept to create a setup only if we have the 3 cross-signing keys
|
||||||
// This is the path to have a sane state
|
// This is the path to have a sane state
|
||||||
// TODO: What about missing MSK that was not gossiped before?
|
// TODO: What about missing MSK that was not gossiped before?
|
||||||
|
|
|
@ -24,6 +24,7 @@ internal enum InfoPlist {
|
||||||
internal static let cfBundleVersion: String = _document["CFBundleVersion"]
|
internal static let cfBundleVersion: String = _document["CFBundleVersion"]
|
||||||
internal static let itsAppUsesNonExemptEncryption: Bool = _document["ITSAppUsesNonExemptEncryption"]
|
internal static let itsAppUsesNonExemptEncryption: Bool = _document["ITSAppUsesNonExemptEncryption"]
|
||||||
internal static let itsEncryptionExportComplianceCode: String = _document["ITSEncryptionExportComplianceCode"]
|
internal static let itsEncryptionExportComplianceCode: String = _document["ITSEncryptionExportComplianceCode"]
|
||||||
|
internal static let lsApplicationQueriesSchemes: [String] = _document["LSApplicationQueriesSchemes"]
|
||||||
internal static let lsRequiresIPhoneOS: Bool = _document["LSRequiresIPhoneOS"]
|
internal static let lsRequiresIPhoneOS: Bool = _document["LSRequiresIPhoneOS"]
|
||||||
internal static let nsAppTransportSecurity: [String: Any] = _document["NSAppTransportSecurity"]
|
internal static let nsAppTransportSecurity: [String: Any] = _document["NSAppTransportSecurity"]
|
||||||
internal static let nsCalendarsUsageDescription: String = _document["NSCalendarsUsageDescription"]
|
internal static let nsCalendarsUsageDescription: String = _document["NSCalendarsUsageDescription"]
|
||||||
|
|
|
@ -562,6 +562,9 @@ Matrix session observer used to detect new opened sessions.
|
||||||
{
|
{
|
||||||
[session.callManager.callKitAdapter reportIncomingCall:call];
|
[session.callManager.callKitAdapter reportIncomingCall:call];
|
||||||
NSLog(@"[PushNotificationService] didReceiveIncomingPushWithPayload: Reporting new call in room %@ for the event: %@", roomId, eventId);
|
NSLog(@"[PushNotificationService] didReceiveIncomingPushWithPayload: Reporting new call in room %@ for the event: %@", roomId, eventId);
|
||||||
|
|
||||||
|
// After reporting the call, we can continue async. Launch a background sync to handle call answers/declines on other devices of the user.
|
||||||
|
[self launchBackgroundSync];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -73,6 +73,12 @@ extern NSString *const AppDelegateUniversalLinkDidChangeNotification;
|
||||||
@property (nonatomic) BOOL isAppForeground;
|
@property (nonatomic) BOOL isAppForeground;
|
||||||
@property (nonatomic) BOOL isOffline;
|
@property (nonatomic) BOOL isOffline;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Last navigated room's identifier from a push notification.
|
||||||
|
*/
|
||||||
|
// TODO: This property is introduced to fix #3672. Remove it when a better solution revealed to the problem.
|
||||||
|
@property (nonatomic, copy) NSString *lastNavigatedRoomIdFromPush;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Let the AppDelegate handle and display self verification requests.
|
Let the AppDelegate handle and display self verification requests.
|
||||||
|
|
|
@ -1096,6 +1096,7 @@ NSString *const AppDelegateUniversalLinkDidChangeNotification = @"AppDelegateUni
|
||||||
|
|
||||||
- (void)pushNotificationService:(PushNotificationService *)pushNotificationService shouldNavigateToRoomWithId:(NSString *)roomId
|
- (void)pushNotificationService:(PushNotificationService *)pushNotificationService shouldNavigateToRoomWithId:(NSString *)roomId
|
||||||
{
|
{
|
||||||
|
_lastNavigatedRoomIdFromPush = roomId;
|
||||||
[self navigateToRoomById:roomId];
|
[self navigateToRoomById:roomId];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -189,7 +189,10 @@ NSString *const kRecentsDataSourceTapOnDirectoryServerChange = @"kRecentsDataSou
|
||||||
{
|
{
|
||||||
SecureBackupBannerPreferences *secureBackupBannersPreferences = SecureBackupBannerPreferences.shared;
|
SecureBackupBannerPreferences *secureBackupBannersPreferences = SecureBackupBannerPreferences.shared;
|
||||||
|
|
||||||
if (!secureBackupBannersPreferences.hideSetupBanner && [self.mxSession vc_canSetupSecureBackup])
|
// Display the banner if only we can set up 4S and if there are messages keys to backup
|
||||||
|
if (!secureBackupBannersPreferences.hideSetupBanner
|
||||||
|
&& [self.mxSession vc_canSetupSecureBackup]
|
||||||
|
&& self.mxSession.crypto.backup.hasKeysToBackup)
|
||||||
{
|
{
|
||||||
secureBackupBanner = SecureBackupBannerDisplaySetup;
|
secureBackupBanner = SecureBackupBannerDisplaySetup;
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,6 +75,21 @@ static NSAttributedString *timestampVerticalWhitespace = nil;
|
||||||
|
|
||||||
// Collapse them by default
|
// Collapse them by default
|
||||||
self.collapsed = YES;
|
self.collapsed = YES;
|
||||||
|
|
||||||
|
// find the room create event in stateEvents
|
||||||
|
MXEvent *roomCreateEvent = [roomState.stateEvents filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"wireType == %@", kMXEventTypeStringRoomCreate]].firstObject;
|
||||||
|
NSString *creatorUserId = [MXRoomCreateContent modelFromJSON:roomCreateEvent.content].creatorUserId;
|
||||||
|
if (creatorUserId)
|
||||||
|
{
|
||||||
|
MXRoomMemberEventContent *content = [MXRoomMemberEventContent modelFromJSON:event.content];
|
||||||
|
if ([kMXMembershipStringJoin isEqualToString:content.membership] &&
|
||||||
|
[creatorUserId isEqualToString:event.sender])
|
||||||
|
{
|
||||||
|
// join event of the room creator
|
||||||
|
// group it with room creation events
|
||||||
|
self.tag = RoomBubbleCellDataTagRoomCreateConfiguration;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case MXEventTypeRoomCreate:
|
case MXEventTypeRoomCreate:
|
||||||
|
@ -214,12 +229,7 @@ static NSAttributedString *timestampVerticalWhitespace = nil;
|
||||||
|
|
||||||
return NO;
|
return NO;
|
||||||
}
|
}
|
||||||
else if (self.tag == RoomBubbleCellDataTagRoomCreateConfiguration &&
|
else if (self.tag == RoomBubbleCellDataTagRoomCreateConfiguration && cellData.tag == RoomBubbleCellDataTagRoomCreateConfiguration)
|
||||||
(cellData.tag == RoomBubbleCellDataTagRoomCreateConfiguration || cellData.tag == RoomBubbleCellDataTagMembership))
|
|
||||||
{
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
else if (self.tag == RoomBubbleCellDataTagMembership && cellData.tag == RoomBubbleCellDataTagRoomCreateConfiguration)
|
|
||||||
{
|
{
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
|
@ -736,6 +746,15 @@ static NSAttributedString *timestampVerticalWhitespace = nil;
|
||||||
case MXEventTypeRoomCreate:
|
case MXEventTypeRoomCreate:
|
||||||
shouldAddEvent = NO;
|
shouldAddEvent = NO;
|
||||||
break;
|
break;
|
||||||
|
case MXEventTypeRoomTopic:
|
||||||
|
case MXEventTypeRoomName:
|
||||||
|
case MXEventTypeRoomEncryption:
|
||||||
|
case MXEventTypeRoomHistoryVisibility:
|
||||||
|
case MXEventTypeRoomGuestAccess:
|
||||||
|
case MXEventTypeRoomAvatar:
|
||||||
|
case MXEventTypeRoomJoinRules:
|
||||||
|
shouldAddEvent = NO;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,7 +71,7 @@
|
||||||
</constraints>
|
</constraints>
|
||||||
</view>
|
</view>
|
||||||
</subviews>
|
</subviews>
|
||||||
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||||
<constraints>
|
<constraints>
|
||||||
<constraint firstItem="eyI-bY-amr" firstAttribute="top" secondItem="M84-br-bHM" secondAttribute="top" constant="16" id="10e-aB-X62"/>
|
<constraint firstItem="eyI-bY-amr" firstAttribute="top" secondItem="M84-br-bHM" secondAttribute="top" constant="16" id="10e-aB-X62"/>
|
||||||
<constraint firstItem="NAg-Nv-eHX" firstAttribute="trailing" secondItem="YaZ-Pv-7g9" secondAttribute="trailing" constant="2" id="Ard-6C-AbE"/>
|
<constraint firstItem="NAg-Nv-eHX" firstAttribute="trailing" secondItem="YaZ-Pv-7g9" secondAttribute="trailing" constant="2" id="Ard-6C-AbE"/>
|
||||||
|
|
|
@ -194,6 +194,7 @@ extension RoomCreationEventsModalViewController: UITableViewDataSource {
|
||||||
cell.textView.isScrollEnabled = false
|
cell.textView.isScrollEnabled = false
|
||||||
cell.textView.isEditable = false
|
cell.textView.isEditable = false
|
||||||
cell.textView.isSelectable = false
|
cell.textView.isSelectable = false
|
||||||
|
cell.textView.backgroundColor = .clear
|
||||||
cell.backgroundColor = theme.backgroundColor
|
cell.backgroundColor = theme.backgroundColor
|
||||||
cell.contentView.backgroundColor = .clear
|
cell.contentView.backgroundColor = .clear
|
||||||
cell.tintColor = theme.tintColor
|
cell.tintColor = theme.tintColor
|
||||||
|
|
|
@ -503,6 +503,13 @@
|
||||||
|
|
||||||
[self setBubbleTableViewContentOffset:CGPointMake(-self.bubblesTableView.mxk_adjustedContentInset.left, -self.bubblesTableView.mxk_adjustedContentInset.top) animated:YES];
|
[self setBubbleTableViewContentOffset:CGPointMake(-self.bubblesTableView.mxk_adjustedContentInset.left, -self.bubblesTableView.mxk_adjustedContentInset.top) animated:YES];
|
||||||
}];
|
}];
|
||||||
|
|
||||||
|
if ([self.roomDataSource.roomId isEqualToString:[LegacyAppDelegate theDelegate].lastNavigatedRoomIdFromPush])
|
||||||
|
{
|
||||||
|
[self startActivityIndicator];
|
||||||
|
[self.roomDataSource reload];
|
||||||
|
[LegacyAppDelegate theDelegate].lastNavigatedRoomIdFromPush = nil;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)viewWillDisappear:(BOOL)animated
|
- (void)viewWillDisappear:(BOOL)animated
|
||||||
|
|
|
@ -106,6 +106,8 @@ final class SetupBiometricsViewModel: SetupBiometricsViewModelType {
|
||||||
self.coordinatorDelegate?.setupBiometricsViewModelDidCompleteWithReset(self, dueToTooManyErrors: true)
|
self.coordinatorDelegate?.setupBiometricsViewModelDidCompleteWithReset(self, dueToTooManyErrors: true)
|
||||||
} else if nsError.code == LAError.Code.userCancel.rawValue || nsError.code == LAError.Code.userFallback.rawValue {
|
} else if nsError.code == LAError.Code.userCancel.rawValue || nsError.code == LAError.Code.userFallback.rawValue {
|
||||||
self.userCancelledUnlockWithBiometrics()
|
self.userCancelledUnlockWithBiometrics()
|
||||||
|
} else {
|
||||||
|
self.update(viewState: .cantUnlocked)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1345,6 +1345,7 @@ TableViewSectionsDelegate>
|
||||||
cell.mxkTextField.borderStyle = UITextBorderStyleNone;
|
cell.mxkTextField.borderStyle = UITextBorderStyleNone;
|
||||||
cell.mxkTextField.textAlignment = NSTextAlignmentRight;
|
cell.mxkTextField.textAlignment = NSTextAlignmentRight;
|
||||||
cell.mxkTextField.textColor = ThemeService.shared.theme.textSecondaryColor;
|
cell.mxkTextField.textColor = ThemeService.shared.theme.textSecondaryColor;
|
||||||
|
cell.mxkTextField.tintColor = ThemeService.shared.theme.tintColor;
|
||||||
cell.mxkTextField.font = [UIFont systemFontOfSize:16];
|
cell.mxkTextField.font = [UIFont systemFontOfSize:16];
|
||||||
cell.mxkTextField.placeholder = nil;
|
cell.mxkTextField.placeholder = nil;
|
||||||
|
|
||||||
|
@ -1645,7 +1646,6 @@ TableViewSectionsDelegate>
|
||||||
newPhoneCell.countryCodeButton.accessibilityIdentifier = @"SettingsVCPhoneCountryButton";
|
newPhoneCell.countryCodeButton.accessibilityIdentifier = @"SettingsVCPhoneCountryButton";
|
||||||
|
|
||||||
newPhoneCell.mxkLabel.font = newPhoneCell.mxkTextField.font = [UIFont systemFontOfSize:16];
|
newPhoneCell.mxkLabel.font = newPhoneCell.mxkTextField.font = [UIFont systemFontOfSize:16];
|
||||||
newPhoneCell.mxkTextField.textColor = ThemeService.shared.theme.textSecondaryColor;
|
|
||||||
|
|
||||||
newPhoneCell.mxkTextField.userInteractionEnabled = YES;
|
newPhoneCell.mxkTextField.userInteractionEnabled = YES;
|
||||||
newPhoneCell.mxkTextField.keyboardType = UIKeyboardTypePhonePad;
|
newPhoneCell.mxkTextField.keyboardType = UIKeyboardTypePhonePad;
|
||||||
|
|
|
@ -28,7 +28,9 @@
|
||||||
[super customizeTableViewCellRendering];
|
[super customizeTableViewCellRendering];
|
||||||
|
|
||||||
self.mxkLabel.textColor = ThemeService.shared.theme.textPrimaryColor;
|
self.mxkLabel.textColor = ThemeService.shared.theme.textPrimaryColor;
|
||||||
self.mxkTextField.textColor = ThemeService.shared.theme.textPrimaryColor;
|
self.mxkTextField.textColor = ThemeService.shared.theme.textSecondaryColor;
|
||||||
|
self.mxkTextField.tintColor = ThemeService.shared.theme.tintColor;
|
||||||
|
self.mxkTextField.backgroundColor = ThemeService.shared.theme.baseColor;
|
||||||
|
|
||||||
_countryCodeButton.tintColor = ThemeService.shared.theme.textSecondaryColor;
|
_countryCodeButton.tintColor = ThemeService.shared.theme.textSecondaryColor;
|
||||||
_isoCountryCodeLabel.textColor = ThemeService.shared.theme.textPrimaryColor;
|
_isoCountryCodeLabel.textColor = ThemeService.shared.theme.textPrimaryColor;
|
||||||
|
|
|
@ -1,12 +1,9 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="16097.3" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
|
||||||
<device id="retina4_7" orientation="portrait">
|
<device id="retina4_7" orientation="portrait" appearance="light"/>
|
||||||
<adaptation id="fullscreen"/>
|
|
||||||
</device>
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="iOS"/>
|
<deployment identifier="iOS"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
|
||||||
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
|
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<objects>
|
<objects>
|
||||||
|
@ -16,11 +13,11 @@
|
||||||
<rect key="frame" x="0.0" y="0.0" width="600" height="44"/>
|
<rect key="frame" x="0.0" y="0.0" width="600" height="44"/>
|
||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="5Je-1y-foH" id="hCm-wd-Yup">
|
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="5Je-1y-foH" id="hCm-wd-Yup">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="600" height="43.5"/>
|
<rect key="frame" x="0.0" y="0.0" width="600" height="44"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" minimumFontSize="14" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="SBE-PS-i6p">
|
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" minimumFontSize="14" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="SBE-PS-i6p">
|
||||||
<rect key="frame" x="110" y="7" width="482" height="30"/>
|
<rect key="frame" x="114" y="5" width="478" height="34"/>
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||||
<textInputTraits key="textInputTraits" returnKeyType="done"/>
|
<textInputTraits key="textInputTraits" returnKeyType="done"/>
|
||||||
<connections>
|
<connections>
|
||||||
|
@ -28,7 +25,7 @@
|
||||||
</connections>
|
</connections>
|
||||||
</textField>
|
</textField>
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="584" translatesAutoresizingMaskIntoConstraints="NO" id="DE7-uC-Oz2">
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="584" translatesAutoresizingMaskIntoConstraints="NO" id="DE7-uC-Oz2">
|
||||||
<rect key="frame" x="60" y="11" width="42" height="21"/>
|
<rect key="frame" x="64" y="11.5" width="42" height="21"/>
|
||||||
<color key="tintColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
<color key="tintColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
<constraints>
|
<constraints>
|
||||||
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="10" id="Qzq-Ej-Wdb"/>
|
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="10" id="Qzq-Ej-Wdb"/>
|
||||||
|
@ -38,18 +35,18 @@
|
||||||
<nil key="highlightedColor"/>
|
<nil key="highlightedColor"/>
|
||||||
</label>
|
</label>
|
||||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8KD-C4-hzY">
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="right" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="8KD-C4-hzY">
|
||||||
<rect key="frame" x="8" y="-0.5" width="44" height="44"/>
|
<rect key="frame" x="14" y="0.0" width="44" height="44"/>
|
||||||
<constraints>
|
<constraints>
|
||||||
<constraint firstAttribute="width" constant="44" id="IXc-6F-gtQ"/>
|
<constraint firstAttribute="width" constant="44" id="IXc-6F-gtQ"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<state key="normal" image="shrink_icon"/>
|
<state key="normal" image="shrink_icon"/>
|
||||||
</button>
|
</button>
|
||||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="FR" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="h7J-Li-Rej">
|
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="FR" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="h7J-Li-Rej">
|
||||||
<rect key="frame" x="25" y="11" width="30" height="21"/>
|
<rect key="frame" x="20" y="11.5" width="30" height="21.5"/>
|
||||||
<constraints>
|
<constraints>
|
||||||
<constraint firstAttribute="width" constant="30" id="ioP-sM-wA4"/>
|
<constraint firstAttribute="width" constant="30" id="ioP-sM-wA4"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
<fontDescription key="fontDescription" type="system" pointSize="18"/>
|
||||||
<nil key="textColor"/>
|
<nil key="textColor"/>
|
||||||
<nil key="highlightedColor"/>
|
<nil key="highlightedColor"/>
|
||||||
</label>
|
</label>
|
||||||
|
@ -59,11 +56,11 @@
|
||||||
<constraint firstAttribute="trailing" secondItem="SBE-PS-i6p" secondAttribute="trailing" constant="8" id="7NM-6p-4fc"/>
|
<constraint firstAttribute="trailing" secondItem="SBE-PS-i6p" secondAttribute="trailing" constant="8" id="7NM-6p-4fc"/>
|
||||||
<constraint firstItem="SBE-PS-i6p" firstAttribute="centerY" secondItem="DE7-uC-Oz2" secondAttribute="centerY" id="LEG-PI-Zmz"/>
|
<constraint firstItem="SBE-PS-i6p" firstAttribute="centerY" secondItem="DE7-uC-Oz2" secondAttribute="centerY" id="LEG-PI-Zmz"/>
|
||||||
<constraint firstAttribute="centerY" secondItem="DE7-uC-Oz2" secondAttribute="centerY" id="PU3-ZA-23J"/>
|
<constraint firstAttribute="centerY" secondItem="DE7-uC-Oz2" secondAttribute="centerY" id="PU3-ZA-23J"/>
|
||||||
<constraint firstItem="DE7-uC-Oz2" firstAttribute="leading" secondItem="8KD-C4-hzY" secondAttribute="trailing" constant="8" id="XNM-HZ-lBf"/>
|
<constraint firstItem="DE7-uC-Oz2" firstAttribute="leading" secondItem="8KD-C4-hzY" secondAttribute="trailing" constant="6" id="XNM-HZ-lBf"/>
|
||||||
<constraint firstItem="8KD-C4-hzY" firstAttribute="leading" secondItem="hCm-wd-Yup" secondAttribute="leading" constant="8" id="buh-ht-pIX"/>
|
<constraint firstItem="h7J-Li-Rej" firstAttribute="leading" secondItem="8KD-C4-hzY" secondAttribute="trailing" constant="-38" id="bSX-La-Jem"/>
|
||||||
<constraint firstItem="SBE-PS-i6p" firstAttribute="leading" secondItem="DE7-uC-Oz2" secondAttribute="trailing" constant="8" id="h1v-HS-kzp"/>
|
<constraint firstItem="SBE-PS-i6p" firstAttribute="leading" secondItem="DE7-uC-Oz2" secondAttribute="trailing" constant="8" id="h1v-HS-kzp"/>
|
||||||
<constraint firstItem="h7J-Li-Rej" firstAttribute="centerY" secondItem="8KD-C4-hzY" secondAttribute="centerY" id="mPr-EN-Ne5"/>
|
<constraint firstItem="h7J-Li-Rej" firstAttribute="centerY" secondItem="8KD-C4-hzY" secondAttribute="centerY" id="mPr-EN-Ne5"/>
|
||||||
<constraint firstItem="h7J-Li-Rej" firstAttribute="leading" secondItem="hCm-wd-Yup" secondAttribute="leadingMargin" constant="5" id="tPe-Md-GPg"/>
|
<constraint firstItem="h7J-Li-Rej" firstAttribute="leading" secondItem="hCm-wd-Yup" secondAttribute="leading" constant="20" id="qQ5-VP-Vfn"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
</tableViewCellContentView>
|
</tableViewCellContentView>
|
||||||
<constraints>
|
<constraints>
|
||||||
|
@ -78,6 +75,7 @@
|
||||||
<outlet property="mxkTextFieldLeadingConstraint" destination="h1v-HS-kzp" id="Sx7-JU-SeG"/>
|
<outlet property="mxkTextFieldLeadingConstraint" destination="h1v-HS-kzp" id="Sx7-JU-SeG"/>
|
||||||
<outlet property="mxkTextFieldTrailingConstraint" destination="7NM-6p-4fc" id="tBw-Gt-9pm"/>
|
<outlet property="mxkTextFieldTrailingConstraint" destination="7NM-6p-4fc" id="tBw-Gt-9pm"/>
|
||||||
</connections>
|
</connections>
|
||||||
|
<point key="canvasLocation" x="139" y="152"/>
|
||||||
</tableViewCell>
|
</tableViewCell>
|
||||||
</objects>
|
</objects>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
|
@ -94,5 +94,10 @@
|
||||||
<string>$(BASE_BUNDLE_IDENTIFIER)</string>
|
<string>$(BASE_BUNDLE_IDENTIFIER)</string>
|
||||||
<key>keychainAccessGroup</key>
|
<key>keychainAccessGroup</key>
|
||||||
<string>$(KEYCHAIN_ACCESS_GROUP)</string>
|
<string>$(KEYCHAIN_ACCESS_GROUP)</string>
|
||||||
|
<key>LSApplicationQueriesSchemes</key>
|
||||||
|
<array>
|
||||||
|
<string>http</string>
|
||||||
|
<string>https</string>
|
||||||
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
Loading…
Reference in a new issue