Commit 9fca542c authored by Kateryna Kostiuk's avatar Kateryna Kostiuk Committed by Andreas Traczyk

account status: display different states

This patch adds indicator to show when account is connected, connecting
and disconnected.

Change-Id: I901f93f60c7a86d9b5c7837fda2b51ffea01d725
Reviewed-by: Andreas Traczyk's avatarAndreas Traczyk <andreas.traczyk@savoirfairelinux.com>
parent bcf24e9f
......@@ -269,7 +269,6 @@ SET(ringclient_XIBS
RingWizardChoose
Dialpad
RegisterNameWindow
ChooseAccount
AccountMenuItemView
ContactRequestList
ContactRequest
......
......@@ -42,6 +42,7 @@
#import "views/NSColor+RingTheme.h"
#import "views/NSImage+Extensions.h"
#import "views/HoverTableRowView.h"
#import "views/RoundedTextField.h"
#import "ExportPasswordWC.h"
#import "utils.h"
......@@ -50,6 +51,7 @@
@property (unsafe_unretained) IBOutlet NSTextField *displayNameField;
@property (unsafe_unretained) IBOutlet NSTextField *ringIDField;
@property (unsafe_unretained) IBOutlet NSTextField *registeredNameField;
@property (unsafe_unretained) IBOutlet RoundedTextField *accountStatus;
@property (unsafe_unretained) IBOutlet NSButton *registerNameButton;
@property (unsafe_unretained) IBOutlet NSButton* photoView;
@property (unsafe_unretained) IBOutlet NSButton* passwordButton;
......@@ -75,6 +77,7 @@ QMetaObject::Connection deviceRevokedSignal;
QMetaObject::Connection deviceUpdatedSignal;
QMetaObject::Connection contactBlockedSignal;
QMetaObject::Connection bannedContactsChangedSignal;
QMetaObject::Connection accountStateChangedSignal;
@synthesize displayNameField;
......@@ -172,6 +175,8 @@ typedef NS_ENUM(NSInteger, TagViews) {
[removeAccountButton setAttributedTitle:colorTitle];
[devicesTableView reloadData];
[blockedContactsTableView reloadData];
self.accountStatus.bgColor = colorForAccountStatus(accountModel->getAccountInfo(self.selectedAccountID).status);
[self.accountStatus setNeedsDisplay:YES];
}
-(void) connectSignals {
......@@ -179,6 +184,7 @@ typedef NS_ENUM(NSInteger, TagViews) {
QObject::disconnect(deviceRevokedSignal);
QObject::disconnect(deviceUpdatedSignal);
QObject::disconnect(bannedContactsChangedSignal);
QObject::disconnect(accountStateChangedSignal);
deviceAddedSignal = QObject::connect(&*(self.accountModel->getAccountInfo(self.selectedAccountID)).deviceModel,
&lrc::api::NewDeviceModel::deviceAdded,
[self] (const std::string &id) {
......@@ -209,6 +215,15 @@ typedef NS_ENUM(NSInteger, TagViews) {
[self] (const std::string &contactUri, bool banned) {
[blockedContactsTableView reloadData];
});
accountStateChangedSignal = QObject::connect(self.accountModel,
&lrc::api::NewAccountModel::accountStatusChanged,
[self] (const std::string& accountID) {
if(accountID != self.selectedAccountID) {
return;
}
self.accountStatus.bgColor = colorForAccountStatus(accountModel->getAccountInfo(accountID).status);
[self.accountStatus setNeedsDisplay:YES];
});
}
-(void) showAlertWithTitle: (NSString *) title andText: (NSString *)text {
......
......@@ -39,6 +39,7 @@
#import "RingWindowController.h"
#import "utils.h"
#import "views/NSColor+RingTheme.h"
#import "views/RoundedTextField.h"
@interface NSMenu ()
- (void) _setHasPadding: (BOOL) pad onEdge: (int) whatEdge;
......@@ -51,7 +52,8 @@
@implementation ChooseAccountVC {
__unsafe_unretained IBOutlet NSImageView* profileImage;
__unsafe_unretained IBOutlet NSTextField* accountStatus;
__unsafe_unretained IBOutlet RoundedTextField* accountStatus;
__unsafe_unretained IBOutlet NSTextField* selectedAccountTitle;
__unsafe_unretained IBOutlet NSPopUpButton* accountSelectionButton;
lrc::api::NewAccountModel* accMdl_;
AccountSelectionManager* accountSelectionManager_;
......@@ -75,7 +77,6 @@ NSMutableDictionary* menuItemsTags;
accountSelectionManager_ = [[AccountSelectionManager alloc] initWithAccountModel:accMdl_];
self.delegate = mainWindow;
[self initView];
}
- (void)initView
......@@ -225,7 +226,7 @@ NSMutableDictionary* menuItemsTags;
} else {
[itemView.accountAvatar setImage: [NSImage imageNamed:@"default_avatar_overlay.png"]];
}
[itemView.accountStatus setHidden:!account.enabled];
itemView.accountStatus.bgColor = colorForAccountStatus(account.status);
switch (account.profileInfo.type) {
case lrc::api::profile::Type::SIP:
[itemView.accountTypeLabel setStringValue:@"SIP"];
......@@ -259,7 +260,8 @@ NSMutableDictionary* menuItemsTags;
} else {
[profileImage setImage: [NSImage imageNamed:@"default_avatar_overlay.png"]];
}
[accountStatus setHidden:!account.enabled];
accountStatus.bgColor = colorForAccountStatus(account.status);
[accountStatus setNeedsDisplay: YES];
}
@catch (NSException *ex) {
NSLog(@"Caught exception %@: %@", [ex name], [ex reason]);
......@@ -283,17 +285,19 @@ NSMutableDictionary* menuItemsTags;
- (NSAttributedString*) attributedItemTitleForAccount:(const lrc::api::account::Info&) account {
NSString* alias = bestNameForAccount(account);
NSString* userNameString = [self nameForAccount: account];
NSFont *fontAlias = [NSFont fontWithName:@"Helvetica Neue" size:16.0];
NSFont *fontAlias = [NSFont fontWithName:@"Helvetica Neue Light" size:16.0];
NSFont *fontUserName = [NSFont fontWithName:@"Helvetica Neue Light" size:13.0];
NSColor *colorAlias = [NSColor labelColor];
NSColor *colorAUserName = [NSColor secondaryLabelColor];
NSColor *colorAlias = [NSColor textColor];
NSColor *colorAUserName = [NSColor labelColor];
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineBreakMode = NSLineBreakByTruncatingTail;
paragraphStyle.lineSpacing = 3;
NSDictionary *aliasAttrs = [NSDictionary dictionaryWithObjectsAndKeys:fontAlias,NSFontAttributeName,
NSDictionary *aliasAttrs = [NSDictionary dictionaryWithObjectsAndKeys:
fontAlias,NSFontAttributeName,
colorAlias,NSForegroundColorAttributeName,
paragraphStyle,NSParagraphStyleAttributeName, nil];
NSDictionary *userNameAttrs = [NSDictionary dictionaryWithObjectsAndKeys:fontUserName,NSFontAttributeName,
NSDictionary *userNameAttrs = [NSDictionary dictionaryWithObjectsAndKeys:
fontUserName,NSFontAttributeName,
colorAUserName,NSForegroundColorAttributeName,
paragraphStyle,NSParagraphStyleAttributeName, nil];
......@@ -334,6 +338,7 @@ NSMutableDictionary* menuItemsTags;
return;
}
[accountSelectionButton selectItemWithTag:[menuItemsTags[@(account.id.c_str())] intValue]];
[selectedAccountTitle setAttributedStringValue: accountSelectionButton.attributedTitle];
}
@catch (NSException *ex) {
NSLog(@"Caught exception %@: %@", [ex name], [ex reason]);
......@@ -352,6 +357,7 @@ NSMutableDictionary* menuItemsTags;
[accountSelectionManager_ setSavedAccount:account];
[self.delegate selectAccount:account currentRemoved: NO];
[self updatePhoto];
[selectedAccountTitle setAttributedStringValue: accountSelectionButton.attributedTitle];
}
- (IBAction)openMenu:(id)sender {
......
......@@ -21,6 +21,8 @@
#import <Foundation/Foundation.h>
#import "NSString+Extensions.h"
#import "views/NSColor+RingTheme.h"
// new lrc
#import <api/conversation.h>
......@@ -179,3 +181,19 @@ static inline bool appSandboxed()
}
return NO;
}
static inline NSColor* colorForAccountStatus(const lrc::api::account::Status status)
{
NSColor *accountStatusColor = [NSColor unregisteredColor];
switch (status) {
case lrc::api::account::Status::REGISTERED:
accountStatusColor = [NSColor presenceColor];
break;
case lrc::api::account::Status::TRYING:
accountStatusColor = [NSColor orangeColor];
break;
default:
break;
}
return accountStatusColor;
}
......@@ -18,6 +18,7 @@
*/
#import <Cocoa/Cocoa.h>
#import "RoundedTextField.h"
@interface AccountMenuItemView : NSView
......@@ -27,7 +28,7 @@
@property (nonatomic, strong) IBOutlet NSTextField* accountTypeLabel;
@property (nonatomic, strong) IBOutlet NSBox* backgroundView;
@property (nonatomic, strong) IBOutlet NSImageView* accountAvatar;
@property (nonatomic, strong) IBOutlet NSTextField* accountStatus;
@property (nonatomic, strong) IBOutlet RoundedTextField* accountStatus;
@property (nonatomic, strong) IBOutlet NSButton* createNewAccount;
@property (nonatomic, strong) IBOutlet NSImageView* createNewAccountImage;
......
......@@ -33,6 +33,8 @@
+ (NSColor*) errorColor;
+ (NSColor*) greenSuccessColor;
+ (NSColor*) errorTransferColor;
+ (NSColor*) presenceColor;
+ (NSColor*) unregisteredColor;
- (NSColor *)lightenColorByValue:(float)value;
- (NSColor *)darkenColorByValue:(float)value;
......
......@@ -66,11 +66,22 @@ return [NSColor colorWithCalibratedRed:59/255.0 green:193/255.0 blue:211/255.0 a
return [NSColor colorWithCalibratedRed:204/255.0 green:51/255.0 blue:51/255.0 alpha:1];
}
+ (NSColor*) unregisteredColor
{
return [NSColor colorWithCalibratedRed:255/255.0 green:59/255.0 blue:40/255.0 alpha:1];
}
+ (NSColor*) greenSuccessColor
{
return [NSColor colorWithCalibratedRed:0/255.0 green:178/255.0 blue:11/255.0 alpha:1];
}
+ (NSColor*) presenceColor
{
return [NSColor colorWithCalibratedRed:76/255.0 green:217/255.0 blue:100/255.0 alpha:1];
}
- (NSColor *)lightenColorByValue:(float)value {
if(![self isKindOfClass:[NSCalibratedRGBColorSpace class]]) {
return self;
......
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14313.18" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14313.18"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
<capability name="System colors introduced in macOS 10.14" minToolsVersion="10.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="AccRingGeneralVC">
<connections>
<outlet property="accountStatus" destination="JDZ-Ww-J0R" id="6aL-GS-YIh"/>
<outlet property="addProfilePhotoImage" destination="Lsc-U9-fTH" id="G9k-ly-ijQ"/>
<outlet property="advancedButtonMarginConstraint" destination="9ET-E5-F0k" id="zEw-dH-YpR"/>
<outlet property="bannedContactHeightConstraint" destination="Oyx-FU-ni1" id="Kye-yG-CHK"/>
......@@ -320,6 +321,29 @@
<action selector="editPhoto:" target="-2" id="cfC-jn-h6W"/>
</connections>
</button>
<textField horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="JDZ-Ww-J0R" userLabel="AccountStatus" customClass="RoundedTextField">
<rect key="frame" x="90" y="41" width="19" height="20"/>
<constraints>
<constraint firstAttribute="width" constant="15.5" id="3Tq-vh-zjv"/>
<constraint firstAttribute="height" constant="19.5" id="Lvn-j5-zSj"/>
</constraints>
<textFieldCell key="cell" enabled="NO" sendsActionOnEndEditing="YES" alignment="center" id="JqD-r2-vsb">
<font key="font" metaFont="system"/>
<color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="bgColor">
<color key="value" red="0.29803921570000003" green="0.85098039219999999" blue="0.3921568627" alpha="1" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="color" keyPath="borderColor">
<color key="value" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="borderThickness">
<real key="value" value="1.5"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</textField>
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Lsc-U9-fTH">
<rect key="frame" x="49" y="90" width="30" height="30"/>
<constraints>
......@@ -342,12 +366,14 @@
</subviews>
<constraints>
<constraint firstItem="a04-w7-5Bn" firstAttribute="centerX" secondItem="edz-Bo-zxA" secondAttribute="centerX" id="0mp-ac-frU"/>
<constraint firstItem="JDZ-Ww-J0R" firstAttribute="trailing" secondItem="NwI-6i-crp" secondAttribute="trailing" constant="-21" id="7pw-7d-7Ut"/>
<constraint firstItem="n2O-cF-oZh" firstAttribute="leading" secondItem="edz-Bo-zxA" secondAttribute="leading" id="AUG-3f-scp"/>
<constraint firstItem="n2O-cF-oZh" firstAttribute="top" secondItem="a04-w7-5Bn" secondAttribute="bottom" constant="20" id="KhI-6h-8XR"/>
<constraint firstItem="NwI-6i-crp" firstAttribute="leading" secondItem="a04-w7-5Bn" secondAttribute="leading" id="NQW-YJ-6bY"/>
<constraint firstItem="NwI-6i-crp" firstAttribute="top" secondItem="a04-w7-5Bn" secondAttribute="top" id="PQn-8z-xDL"/>
<constraint firstAttribute="trailing" secondItem="n2O-cF-oZh" secondAttribute="trailing" id="hfH-o5-XHE"/>
<constraint firstItem="Lsc-U9-fTH" firstAttribute="centerY" secondItem="a04-w7-5Bn" secondAttribute="centerY" id="iwV-Th-OV6"/>
<constraint firstItem="JDZ-Ww-J0R" firstAttribute="bottom" secondItem="NwI-6i-crp" secondAttribute="bottom" id="kIG-eu-dku"/>
<constraint firstItem="NwI-6i-crp" firstAttribute="trailing" secondItem="a04-w7-5Bn" secondAttribute="trailing" id="rTJ-s0-Fmw"/>
<constraint firstAttribute="bottom" secondItem="n2O-cF-oZh" secondAttribute="bottom" id="uBU-6F-YaI"/>
<constraint firstItem="Lsc-U9-fTH" firstAttribute="centerX" secondItem="a04-w7-5Bn" secondAttribute="centerX" id="uyy-Ng-jY4"/>
......
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14313.18" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14313.18"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14460.31"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
......@@ -9,8 +9,7 @@
<connections>
<outlet property="accountAvatar" destination="XKc-lc-K67" id="Pfu-lm-V66"/>
<outlet property="accountLabel" destination="V91-eS-dUh" id="MNE-TY-RqK"/>
<outlet property="accountState" destination="TdK-5g-ddU" id="6DG-YN-nZt"/>
<outlet property="accountStatus" destination="TdK-5g-ddU" id="bzV-if-XBF"/>
<outlet property="accountStatus" destination="TdK-5g-ddU" id="2V3-LR-C3E"/>
<outlet property="accountTypeLabel" destination="0PP-Di-b7L" id="O6c-L9-jBr"/>
<outlet property="backgroundView" destination="ZIZ-jd-eLK" id="QTx-8z-4zA"/>
<outlet property="containerView" destination="Hz6-mo-xeY" id="t5f-yD-zPi"/>
......@@ -74,14 +73,11 @@
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="bgColor">
<color key="value" red="0.29803921570000003" green="0.85098039219999999" blue="0.3921568627" alpha="1" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="color" keyPath="borderColor">
<color key="value" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
<color key="value" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="borderThickness">
<real key="value" value="0.5"/>
<real key="value" value="1.5"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</textField>
......
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14113" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14113"/>
<capability name="box content view" minToolsVersion="7.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="ChooseAccountVC">
<connections>
<outlet property="accountSelectionButton" destination="sMr-ym-Q7q" id="aWB-iE-k1f"/>
<outlet property="accountStatus" destination="3O0-W6-QCM" id="5i7-92-c94"/>
<outlet property="profileImage" destination="hJM-cr-sZ1" id="dkR-YC-SFd"/>
<outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<customView id="Hz6-mo-xeY">
<rect key="frame" x="0.0" y="0.0" width="187" height="30"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<subviews>
<box boxType="custom" borderType="none" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="Cvs-Qn-771">
<rect key="frame" x="0.0" y="0.0" width="187" height="30"/>
<view key="contentView" id="HA7-fk-gse">
<rect key="frame" x="0.0" y="0.0" width="187" height="30"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="hJM-cr-sZ1">
<rect key="frame" x="0.0" y="0.0" width="30" height="30"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="icZ-2o-tSc"/>
<constraint firstAttribute="width" constant="30" id="tck-Dd-F7J"/>
</constraints>
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="BCQ-IL-Z8Y"/>
</imageView>
<textField horizontalHuggingPriority="750" verticalHuggingPriority="750" tag="500" translatesAutoresizingMaskIntoConstraints="NO" id="3O0-W6-QCM" userLabel="AccountStatus" customClass="RoundedTextField">
<rect key="frame" x="22" y="0.0" width="10" height="11"/>
<constraints>
<constraint firstAttribute="width" constant="6.5" id="4Ks-ia-6rg"/>
<constraint firstAttribute="height" constant="10.5" id="GGv-tJ-9Ps"/>
</constraints>
<textFieldCell key="cell" enabled="NO" sendsActionOnEndEditing="YES" alignment="center" id="Wdm-ve-lDX">
<font key="font" metaFont="system"/>
<color key="textColor" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="bgColor">
<color key="value" red="0.29803921570000003" green="0.85098039219999999" blue="0.3921568627" alpha="1" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="color" keyPath="borderColor">
<color key="value" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="borderThickness">
<real key="value" value="0.5"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
</textField>
<popUpButton translatesAutoresizingMaskIntoConstraints="NO" id="sMr-ym-Q7q">
<rect key="frame" x="25" y="-2" width="159" height="34"/>
<constraints>
<constraint firstAttribute="width" constant="155" id="RHk-BK-YeF"/>
</constraints>
<popUpButtonCell key="cell" type="check" bezelStyle="regularSquare" imagePosition="left" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="bezel" inset="2" selectedItem="CTF-me-3R0" id="AKJ-ja-nkI">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system" size="16"/>
<menu key="menu" id="R46-PB-Vne">
<items>
<menuItem state="on" id="CTF-me-3R0">
<modifierMask key="keyEquivalentModifierMask"/>
</menuItem>
<menuItem title="Item 2" id="96g-DV-w7N"/>
<menuItem title="Item 3" id="ck4-ev-O3i"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<action selector="itemChanged:" target="-2" id="mQK-JP-QcL"/>
</connections>
</popUpButton>
</subviews>
<constraints>
<constraint firstItem="sMr-ym-Q7q" firstAttribute="centerY" secondItem="hJM-cr-sZ1" secondAttribute="centerY" id="4yN-6b-Ld4"/>
<constraint firstAttribute="trailing" secondItem="sMr-ym-Q7q" secondAttribute="trailing" constant="5" id="BD9-ZS-cZa"/>
<constraint firstItem="sMr-ym-Q7q" firstAttribute="height" secondItem="hJM-cr-sZ1" secondAttribute="height" id="GBP-lS-4lF"/>
<constraint firstItem="hJM-cr-sZ1" firstAttribute="top" secondItem="HA7-fk-gse" secondAttribute="top" id="Kzn-vk-eB3"/>
<constraint firstItem="hJM-cr-sZ1" firstAttribute="leading" secondItem="HA7-fk-gse" secondAttribute="leading" id="h7j-p5-yg5"/>
<constraint firstItem="sMr-ym-Q7q" firstAttribute="leading" secondItem="hJM-cr-sZ1" secondAttribute="trailing" constant="-3" id="hX2-eN-HTr"/>
<constraint firstItem="3O0-W6-QCM" firstAttribute="bottom" secondItem="hJM-cr-sZ1" secondAttribute="bottom" id="heW-Ck-JYo"/>
<constraint firstItem="3O0-W6-QCM" firstAttribute="trailing" secondItem="hJM-cr-sZ1" secondAttribute="trailing" id="uia-pf-17R"/>
</constraints>
</view>
</box>
</subviews>
<constraints>
<constraint firstAttribute="bottom" secondItem="Cvs-Qn-771" secondAttribute="bottom" id="DVK-x6-u1L"/>
<constraint firstAttribute="trailing" secondItem="Cvs-Qn-771" secondAttribute="trailing" id="YNS-9b-75H"/>
<constraint firstItem="Cvs-Qn-771" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" id="gyt-ki-BUX"/>
<constraint firstItem="Cvs-Qn-771" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" id="ntP-C1-M3d"/>
</constraints>
</customView>
</objects>
</document>
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment