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)
|
||||
=================================================
|
||||
|
||||
|
@ -22,6 +54,7 @@ Changes in 1.0.13 (2020-09-30)
|
|||
* Device verification: Fix inactive cancel action issue in self verification flow.
|
||||
* Fix floating action buttons' images.
|
||||
* Various theme fixes.
|
||||
* Room: Fix message not shown after push issue (#3672).
|
||||
|
||||
⚠️ 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
|
||||
#
|
||||
# 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 = {'develop' => 'develop'}
|
||||
|
||||
|
|
|
@ -1957,6 +1957,9 @@
|
|||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
|
@ -5666,6 +5669,7 @@
|
|||
pl,
|
||||
cy,
|
||||
it,
|
||||
et,
|
||||
);
|
||||
mainGroup = F094A9991B78D8F000B1FBBF;
|
||||
productRefGroup = F094A9A31B78D8F000B1FBBF /* Products */;
|
||||
|
@ -6928,6 +6932,7 @@
|
|||
32DAF8DD231813E100654A44 /* pl */,
|
||||
325789A7237AB297009388E6 /* cy */,
|
||||
B1C6FFE923954D4B0055347B /* it */,
|
||||
B1EDFDF32525E9690020EEFF /* et */,
|
||||
);
|
||||
name = Vector.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -6953,6 +6958,7 @@
|
|||
32DAF8DB231813C800654A44 /* pl */,
|
||||
325789A5237AB241009388E6 /* cy */,
|
||||
B1C6FFE723954CE70055347B /* it */,
|
||||
B1EDFDF42525E9690020EEFF /* et */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -6978,6 +6984,7 @@
|
|||
32DAF8DC231813D500654A44 /* pl */,
|
||||
325789A6237AB27F009388E6 /* cy */,
|
||||
B1C6FFE823954D3B0055347B /* it */,
|
||||
B1EDFDF52525E96A0020EEFF /* et */,
|
||||
);
|
||||
name = Localizable.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -7270,7 +7277,7 @@
|
|||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 1.0.13;
|
||||
CURRENT_PROJECT_VERSION = 1.0.14;
|
||||
DEFINES_MODULE = YES;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
|
@ -7290,7 +7297,7 @@
|
|||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
MARKETING_VERSION = 1.0.13;
|
||||
MARKETING_VERSION = 1.0.14;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
|
@ -7329,7 +7336,7 @@
|
|||
CODE_SIGN_IDENTITY = "iPhone Distribution";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||
COPY_PHASE_STRIP = YES;
|
||||
CURRENT_PROJECT_VERSION = 1.0.13;
|
||||
CURRENT_PROJECT_VERSION = 1.0.14;
|
||||
DEFINES_MODULE = YES;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
|
@ -7342,7 +7349,7 @@
|
|||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
MARKETING_VERSION = 1.0.13;
|
||||
MARKETING_VERSION = 1.0.14;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
|
|
|
@ -88,12 +88,6 @@
|
|||
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
|
||||
// This is the path to have a sane state
|
||||
// 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 itsAppUsesNonExemptEncryption: Bool = _document["ITSAppUsesNonExemptEncryption"]
|
||||
internal static let itsEncryptionExportComplianceCode: String = _document["ITSEncryptionExportComplianceCode"]
|
||||
internal static let lsApplicationQueriesSchemes: [String] = _document["LSApplicationQueriesSchemes"]
|
||||
internal static let lsRequiresIPhoneOS: Bool = _document["LSRequiresIPhoneOS"]
|
||||
internal static let nsAppTransportSecurity: [String: Any] = _document["NSAppTransportSecurity"]
|
||||
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];
|
||||
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
|
||||
{
|
||||
|
|
|
@ -73,6 +73,12 @@ extern NSString *const AppDelegateUniversalLinkDidChangeNotification;
|
|||
@property (nonatomic) BOOL isAppForeground;
|
||||
@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.
|
||||
|
|
|
@ -1096,6 +1096,7 @@ NSString *const AppDelegateUniversalLinkDidChangeNotification = @"AppDelegateUni
|
|||
|
||||
- (void)pushNotificationService:(PushNotificationService *)pushNotificationService shouldNavigateToRoomWithId:(NSString *)roomId
|
||||
{
|
||||
_lastNavigatedRoomIdFromPush = roomId;
|
||||
[self navigateToRoomById:roomId];
|
||||
}
|
||||
|
||||
|
|
|
@ -189,7 +189,10 @@ NSString *const kRecentsDataSourceTapOnDirectoryServerChange = @"kRecentsDataSou
|
|||
{
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -75,6 +75,21 @@ static NSAttributedString *timestampVerticalWhitespace = nil;
|
|||
|
||||
// Collapse them by default
|
||||
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;
|
||||
case MXEventTypeRoomCreate:
|
||||
|
@ -214,12 +229,7 @@ static NSAttributedString *timestampVerticalWhitespace = nil;
|
|||
|
||||
return NO;
|
||||
}
|
||||
else if (self.tag == RoomBubbleCellDataTagRoomCreateConfiguration &&
|
||||
(cellData.tag == RoomBubbleCellDataTagRoomCreateConfiguration || cellData.tag == RoomBubbleCellDataTagMembership))
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
else if (self.tag == RoomBubbleCellDataTagMembership && cellData.tag == RoomBubbleCellDataTagRoomCreateConfiguration)
|
||||
else if (self.tag == RoomBubbleCellDataTagRoomCreateConfiguration && cellData.tag == RoomBubbleCellDataTagRoomCreateConfiguration)
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
@ -736,6 +746,15 @@ static NSAttributedString *timestampVerticalWhitespace = nil;
|
|||
case MXEventTypeRoomCreate:
|
||||
shouldAddEvent = NO;
|
||||
break;
|
||||
case MXEventTypeRoomTopic:
|
||||
case MXEventTypeRoomName:
|
||||
case MXEventTypeRoomEncryption:
|
||||
case MXEventTypeRoomHistoryVisibility:
|
||||
case MXEventTypeRoomGuestAccess:
|
||||
case MXEventTypeRoomAvatar:
|
||||
case MXEventTypeRoomJoinRules:
|
||||
shouldAddEvent = NO;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -71,7 +71,7 @@
|
|||
</constraints>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<constraints>
|
||||
<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"/>
|
||||
|
|
|
@ -194,6 +194,7 @@ extension RoomCreationEventsModalViewController: UITableViewDataSource {
|
|||
cell.textView.isScrollEnabled = false
|
||||
cell.textView.isEditable = false
|
||||
cell.textView.isSelectable = false
|
||||
cell.textView.backgroundColor = .clear
|
||||
cell.backgroundColor = theme.backgroundColor
|
||||
cell.contentView.backgroundColor = .clear
|
||||
cell.tintColor = theme.tintColor
|
||||
|
|
|
@ -503,6 +503,13 @@
|
|||
|
||||
[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
|
||||
|
|
|
@ -106,6 +106,8 @@ final class SetupBiometricsViewModel: SetupBiometricsViewModelType {
|
|||
self.coordinatorDelegate?.setupBiometricsViewModelDidCompleteWithReset(self, dueToTooManyErrors: true)
|
||||
} else if nsError.code == LAError.Code.userCancel.rawValue || nsError.code == LAError.Code.userFallback.rawValue {
|
||||
self.userCancelledUnlockWithBiometrics()
|
||||
} else {
|
||||
self.update(viewState: .cantUnlocked)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1345,6 +1345,7 @@ TableViewSectionsDelegate>
|
|||
cell.mxkTextField.borderStyle = UITextBorderStyleNone;
|
||||
cell.mxkTextField.textAlignment = NSTextAlignmentRight;
|
||||
cell.mxkTextField.textColor = ThemeService.shared.theme.textSecondaryColor;
|
||||
cell.mxkTextField.tintColor = ThemeService.shared.theme.tintColor;
|
||||
cell.mxkTextField.font = [UIFont systemFontOfSize:16];
|
||||
cell.mxkTextField.placeholder = nil;
|
||||
|
||||
|
@ -1645,7 +1646,6 @@ TableViewSectionsDelegate>
|
|||
newPhoneCell.countryCodeButton.accessibilityIdentifier = @"SettingsVCPhoneCountryButton";
|
||||
|
||||
newPhoneCell.mxkLabel.font = newPhoneCell.mxkTextField.font = [UIFont systemFontOfSize:16];
|
||||
newPhoneCell.mxkTextField.textColor = ThemeService.shared.theme.textSecondaryColor;
|
||||
|
||||
newPhoneCell.mxkTextField.userInteractionEnabled = YES;
|
||||
newPhoneCell.mxkTextField.keyboardType = UIKeyboardTypePhonePad;
|
||||
|
|
|
@ -28,7 +28,9 @@
|
|||
[super customizeTableViewCellRendering];
|
||||
|
||||
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;
|
||||
_isoCountryCodeLabel.textColor = ThemeService.shared.theme.textPrimaryColor;
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
<?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">
|
||||
<device id="retina4_7" orientation="portrait">
|
||||
<adaptation id="fullscreen"/>
|
||||
</device>
|
||||
<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" appearance="light"/>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
|
||||
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
|
@ -16,11 +13,11 @@
|
|||
<rect key="frame" x="0.0" y="0.0" width="600" height="44"/>
|
||||
<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">
|
||||
<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"/>
|
||||
<subviews>
|
||||
<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"/>
|
||||
<textInputTraits key="textInputTraits" returnKeyType="done"/>
|
||||
<connections>
|
||||
|
@ -28,7 +25,7 @@
|
|||
</connections>
|
||||
</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">
|
||||
<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"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="10" id="Qzq-Ej-Wdb"/>
|
||||
|
@ -38,18 +35,18 @@
|
|||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<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>
|
||||
<constraint firstAttribute="width" constant="44" id="IXc-6F-gtQ"/>
|
||||
</constraints>
|
||||
<state key="normal" image="shrink_icon"/>
|
||||
</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">
|
||||
<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>
|
||||
<constraint firstAttribute="width" constant="30" id="ioP-sM-wA4"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="18"/>
|
||||
<nil key="textColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
|
@ -59,11 +56,11 @@
|
|||
<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 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="8KD-C4-hzY" firstAttribute="leading" secondItem="hCm-wd-Yup" secondAttribute="leading" constant="8" id="buh-ht-pIX"/>
|
||||
<constraint firstItem="DE7-uC-Oz2" firstAttribute="leading" secondItem="8KD-C4-hzY" secondAttribute="trailing" constant="6" id="XNM-HZ-lBf"/>
|
||||
<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="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>
|
||||
</tableViewCellContentView>
|
||||
<constraints>
|
||||
|
@ -78,6 +75,7 @@
|
|||
<outlet property="mxkTextFieldLeadingConstraint" destination="h1v-HS-kzp" id="Sx7-JU-SeG"/>
|
||||
<outlet property="mxkTextFieldTrailingConstraint" destination="7NM-6p-4fc" id="tBw-Gt-9pm"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="139" y="152"/>
|
||||
</tableViewCell>
|
||||
</objects>
|
||||
<resources>
|
||||
|
|
|
@ -94,5 +94,10 @@
|
|||
<string>$(BASE_BUNDLE_IDENTIFIER)</string>
|
||||
<key>keychainAccessGroup</key>
|
||||
<string>$(KEYCHAIN_ACCESS_GROUP)</string>
|
||||
<key>LSApplicationQueriesSchemes</key>
|
||||
<array>
|
||||
<string>http</string>
|
||||
<string>https</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
Loading…
Reference in a new issue