forked from organicmaps/organicmaps
[ios] Fixed UI
This commit is contained in:
parent
90a0b1f614
commit
c388e69f35
11 changed files with 162 additions and 128 deletions
|
@ -1,23 +1,27 @@
|
|||
|
||||
#include "editor/osm_auth.hpp"
|
||||
|
||||
typedef NS_OPTIONS(NSUInteger, MWMAuthorizationButtonType)
|
||||
namespace osm_auth_ios
|
||||
{
|
||||
MWMAuthorizationButtonTypeGoogle,
|
||||
MWMAuthorizationButtonTypeFacebook,
|
||||
MWMAuthorizationButtonTypeOSM
|
||||
|
||||
enum class AuthorizationButtonType
|
||||
{
|
||||
AuthorizationButtonTypeGoogle,
|
||||
AuthorizationButtonTypeFacebook,
|
||||
AuthorizationButtonTypeOSM
|
||||
};
|
||||
|
||||
UIColor * MWMAuthorizationButtonBackgroundColor(MWMAuthorizationButtonType type);
|
||||
void MWMAuthorizationConfigButton(UIButton * btn, MWMAuthorizationButtonType type);
|
||||
UIColor * AuthorizationButtonBackgroundColor(AuthorizationButtonType type);
|
||||
void AuthorizationConfigButton(UIButton * btn, AuthorizationButtonType type);
|
||||
|
||||
// Deletes any stored credentials if called with empty key or secret.
|
||||
void MWMAuthorizationStoreCredentials(osm::TKeySecret const & keySecret);
|
||||
BOOL MWMAuthorizationHaveCredentials();
|
||||
void AuthorizationStoreCredentials(osm::TKeySecret const & keySecret);
|
||||
BOOL AuthorizationHaveCredentials();
|
||||
// Returns empty key and secret if user has not beed authorized.
|
||||
osm::TKeySecret MWMAuthorizationGetCredentials();
|
||||
osm::TKeySecret AuthorizationGetCredentials();
|
||||
|
||||
void MWMAuthorizationSetUserSkip();
|
||||
BOOL MWMAuthorizationIsUserSkip();
|
||||
void MWMAuthorizationSetNeedCheck(BOOL needCheck);
|
||||
BOOL MWMAuthorizationIsNeedCheck();
|
||||
void AuthorizationSetUserSkip();
|
||||
BOOL AuthorizationIsUserSkip();
|
||||
void AuthorizationSetNeedCheck(BOOL needCheck);
|
||||
BOOL AuthorizationIsNeedCheck();
|
||||
|
||||
} // namespace osm_auth_ios
|
||||
|
|
|
@ -2,57 +2,56 @@
|
|||
#import "UIButton+RuntimeAttributes.h"
|
||||
#import "UIColor+MapsMeColor.h"
|
||||
|
||||
namespace
|
||||
namespace osm_auth_ios
|
||||
{
|
||||
|
||||
NSString * const kOSMRequestToken = @"OSMRequestToken";
|
||||
NSString * const kOSMRequestSecret = @"OSMRequestSecret";
|
||||
NSString * const kAuthUserSkip = @"AuthUserSkip";
|
||||
NSString * const kAuthNeedCheck = @"AuthNeedCheck";
|
||||
} // namespace
|
||||
|
||||
UIColor * MWMAuthorizationButtonTextColor(MWMAuthorizationButtonType type)
|
||||
UIColor * AuthorizationButtonTextColor(AuthorizationButtonType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case MWMAuthorizationButtonTypeGoogle:
|
||||
case AuthorizationButtonType::AuthorizationButtonTypeGoogle:
|
||||
return [UIColor blackColor];
|
||||
case MWMAuthorizationButtonTypeFacebook:
|
||||
case AuthorizationButtonType::AuthorizationButtonTypeFacebook:
|
||||
return [UIColor whiteColor];
|
||||
case MWMAuthorizationButtonTypeOSM:
|
||||
case AuthorizationButtonType::AuthorizationButtonTypeOSM:
|
||||
return [UIColor white];
|
||||
}
|
||||
return [UIColor clearColor];
|
||||
}
|
||||
|
||||
UIColor * MWMAuthorizationButtonBackgroundColor(MWMAuthorizationButtonType type)
|
||||
UIColor * AuthorizationButtonBackgroundColor(AuthorizationButtonType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case MWMAuthorizationButtonTypeGoogle:
|
||||
case AuthorizationButtonType::AuthorizationButtonTypeGoogle:
|
||||
return [UIColor whiteColor];
|
||||
case MWMAuthorizationButtonTypeFacebook:
|
||||
case AuthorizationButtonType::AuthorizationButtonTypeFacebook:
|
||||
return [UIColor colorWithRed:72. / 255. green:97. / 255. blue:163. / 255. alpha:1.];
|
||||
case MWMAuthorizationButtonTypeOSM:
|
||||
case AuthorizationButtonType::AuthorizationButtonTypeOSM:
|
||||
return [UIColor linkBlue];
|
||||
}
|
||||
return [UIColor clearColor];
|
||||
}
|
||||
|
||||
void MWMAuthorizationConfigButton(UIButton * btn, MWMAuthorizationButtonType type)
|
||||
void AuthorizationConfigButton(UIButton * btn, AuthorizationButtonType type)
|
||||
{
|
||||
UIColor * txtCol = MWMAuthorizationButtonTextColor(type);
|
||||
UIColor * bgCol = MWMAuthorizationButtonBackgroundColor(type);
|
||||
UIColor * txtCol = AuthorizationButtonTextColor(type);
|
||||
UIColor * bgCol = AuthorizationButtonBackgroundColor(type);
|
||||
|
||||
CGFloat const highlightedAlpha = 0.3;
|
||||
[btn setTitleColor:txtCol forState:UIControlStateNormal];
|
||||
[btn setTitleColor:bgCol forState:UIControlStateHighlighted];
|
||||
[btn setTitleColor:[txtCol colorWithAlphaComponent:highlightedAlpha] forState:UIControlStateHighlighted];
|
||||
|
||||
[btn setBackgroundColor:bgCol forState:UIControlStateNormal];
|
||||
[btn setBackgroundColor:[UIColor clearColor] forState:UIControlStateHighlighted];
|
||||
|
||||
btn.layer.borderColor = bgCol.CGColor;
|
||||
[btn setBackgroundColor:[bgCol colorWithAlphaComponent:highlightedAlpha] forState:UIControlStateHighlighted];
|
||||
}
|
||||
|
||||
void MWMAuthorizationStoreCredentials(osm::TKeySecret const & keySecret)
|
||||
void AuthorizationStoreCredentials(osm::TKeySecret const & keySecret)
|
||||
{
|
||||
NSUserDefaults * ud = [NSUserDefaults standardUserDefaults];
|
||||
if (keySecret.first.empty() || keySecret.second.empty())
|
||||
|
@ -68,7 +67,7 @@ void MWMAuthorizationStoreCredentials(osm::TKeySecret const & keySecret)
|
|||
[ud synchronize];
|
||||
}
|
||||
|
||||
BOOL MWMAuthorizationHaveCredentials()
|
||||
BOOL AuthorizationHaveCredentials()
|
||||
{
|
||||
NSUserDefaults * ud = [NSUserDefaults standardUserDefaults];
|
||||
NSString * requestToken = [ud stringForKey:kOSMRequestToken];
|
||||
|
@ -76,7 +75,7 @@ BOOL MWMAuthorizationHaveCredentials()
|
|||
return requestToken && requestSecret;
|
||||
}
|
||||
|
||||
osm::TKeySecret MWMAuthorizationGetCredentials()
|
||||
osm::TKeySecret AuthorizationGetCredentials()
|
||||
{
|
||||
NSUserDefaults * ud = [NSUserDefaults standardUserDefaults];
|
||||
NSString * requestToken = [ud stringForKey:kOSMRequestToken];
|
||||
|
@ -86,26 +85,28 @@ osm::TKeySecret MWMAuthorizationGetCredentials()
|
|||
return {};
|
||||
}
|
||||
|
||||
void MWMAuthorizationSetUserSkip()
|
||||
void AuthorizationSetUserSkip()
|
||||
{
|
||||
NSUserDefaults * ud = [NSUserDefaults standardUserDefaults];
|
||||
[ud setObject:[NSDate date] forKey:kAuthUserSkip];
|
||||
[ud synchronize];
|
||||
}
|
||||
|
||||
BOOL MWMAuthorizationIsUserSkip()
|
||||
BOOL AuthorizationIsUserSkip()
|
||||
{
|
||||
return [[NSUserDefaults standardUserDefaults] objectForKey:kAuthUserSkip] != nil;
|
||||
}
|
||||
|
||||
void MWMAuthorizationSetNeedCheck(BOOL needCheck)
|
||||
void AuthorizationSetNeedCheck(BOOL needCheck)
|
||||
{
|
||||
NSUserDefaults * ud = [NSUserDefaults standardUserDefaults];
|
||||
[ud setBool:needCheck forKey:kAuthNeedCheck];
|
||||
[ud synchronize];
|
||||
}
|
||||
|
||||
BOOL MWMAuthorizationIsNeedCheck()
|
||||
BOOL AuthorizationIsNeedCheck()
|
||||
{
|
||||
return [[NSUserDefaults standardUserDefaults] boolForKey:kAuthNeedCheck];
|
||||
}
|
||||
|
||||
} // namespace osm_auth_ios
|
||||
|
|
|
@ -34,12 +34,12 @@ using namespace osm;
|
|||
@property (weak, nonatomic) IBOutlet UIBarButtonItem * leftBarButton;
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UIView * profileView;
|
||||
@property (weak, nonatomic) IBOutlet UIView * localChangesView;
|
||||
@property (weak, nonatomic) IBOutlet UILabel * localChangesLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel * localChangesNotUploadedLabel;
|
||||
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * localChangesViewHeight;
|
||||
@property (weak, nonatomic) IBOutlet UIButton * localChangesActionButton;
|
||||
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * localChangesLabelCenter;
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UIView * uploadedChangesView;
|
||||
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * uploadedChangesViewTopOffset;
|
||||
@property (weak, nonatomic) IBOutlet UILabel * uploadedChangesLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel * lastUploadLabel;
|
||||
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * uploadedChangesViewHeight;
|
||||
|
@ -50,6 +50,8 @@ using namespace osm;
|
|||
|
||||
@implementation MWMAuthorizationLoginViewController
|
||||
|
||||
using namespace osm_auth_ios;
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatAuthorization, kStatOpen)];
|
||||
|
@ -61,10 +63,10 @@ using namespace osm;
|
|||
- (void)viewWillAppear:(BOOL)animated
|
||||
{
|
||||
[super viewWillAppear:animated];
|
||||
if (MWMAuthorizationHaveCredentials())
|
||||
if (AuthorizationHaveCredentials())
|
||||
[self configHaveAuth];
|
||||
else
|
||||
[self configNoAuth:MWMAuthorizationIsNeedCheck() && !MWMAuthorizationIsUserSkip()];
|
||||
[self configNoAuth:AuthorizationIsNeedCheck() && !AuthorizationIsUserSkip()];
|
||||
|
||||
[self configChanges];
|
||||
UINavigationBar * navBar = self.navigationController.navigationBar;
|
||||
|
@ -75,7 +77,7 @@ using namespace osm;
|
|||
navBar.shadowImage = [[UIImage alloc] init];
|
||||
[navBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
|
||||
navBar.translucent = YES;
|
||||
MWMAuthorizationSetNeedCheck(NO);
|
||||
AuthorizationSetNeedCheck(NO);
|
||||
}
|
||||
|
||||
- (void)viewWillDisappear:(BOOL)animated
|
||||
|
@ -96,9 +98,9 @@ using namespace osm;
|
|||
self.loginFacebookButton.enabled = isConnected;
|
||||
self.signupButton.enabled = isConnected;
|
||||
|
||||
MWMAuthorizationConfigButton(self.loginGoogleButton, MWMAuthorizationButtonTypeGoogle);
|
||||
MWMAuthorizationConfigButton(self.loginFacebookButton, MWMAuthorizationButtonTypeFacebook);
|
||||
MWMAuthorizationConfigButton(self.loginOSMButton, MWMAuthorizationButtonTypeOSM);
|
||||
AuthorizationConfigButton(self.loginGoogleButton, AuthorizationButtonType::AuthorizationButtonTypeGoogle);
|
||||
AuthorizationConfigButton(self.loginFacebookButton, AuthorizationButtonType::AuthorizationButtonTypeFacebook);
|
||||
AuthorizationConfigButton(self.loginOSMButton, AuthorizationButtonType::AuthorizationButtonTypeOSM);
|
||||
|
||||
if (!isConnected)
|
||||
{
|
||||
|
@ -111,7 +113,7 @@ using namespace osm;
|
|||
{
|
||||
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^
|
||||
{
|
||||
ServerApi06 const api(OsmOAuth::ServerAuth(MWMAuthorizationGetCredentials()));
|
||||
ServerApi06 const api(OsmOAuth::ServerAuth(AuthorizationGetCredentials()));
|
||||
try
|
||||
{
|
||||
UserPreferences const prefs = api.GetUserPreferences();
|
||||
|
@ -168,7 +170,7 @@ using namespace osm;
|
|||
- (void)configChanges
|
||||
{
|
||||
auto const stats = Editor::Instance().GetStats();
|
||||
if (stats.m_edits.empty() && !MWMAuthorizationHaveCredentials())
|
||||
if (stats.m_edits.empty() && !AuthorizationHaveCredentials())
|
||||
{
|
||||
self.profileView.hidden = YES;
|
||||
self.messageTopOffset.priority = UILayoutPriorityDefaultHigh;
|
||||
|
@ -179,14 +181,13 @@ using namespace osm;
|
|||
size_t const uploadedChanges = stats.m_uploadedCount;
|
||||
size_t const localChanges = totalChanges - uploadedChanges;
|
||||
|
||||
self.localChangesLabel.text = [NSString stringWithFormat:@"%@: %@", L(@"changes").capitalizedString, @(localChanges)];
|
||||
BOOL const noLocalChanges = (localChanges == 0);
|
||||
self.localChangesNotUploadedLabel.hidden = noLocalChanges;
|
||||
self.localChangesActionButton.hidden = noLocalChanges;
|
||||
self.localChangesViewHeight.constant = noLocalChanges ? 44.0 : 64.0;
|
||||
self.localChangesLabelCenter.priority = noLocalChanges ? UILayoutPriorityDefaultHigh : UILayoutPriorityDefaultLow;
|
||||
[self setLocalChangesHidden:noLocalChanges];
|
||||
if (!noLocalChanges)
|
||||
self.localChangesLabel.text = [NSString stringWithFormat:@"%@: %@", L(@"not_sent").capitalizedString, @(localChanges)];
|
||||
|
||||
BOOL const noUploadedChanges = (uploadedChanges == 0);
|
||||
[self setUploadedChangesDisabled:noUploadedChanges];
|
||||
self.uploadedChangesLabel.text = [NSString stringWithFormat:@"%@: %@", L(@"changes").capitalizedString, @(uploadedChanges)];
|
||||
self.lastUploadLabel.hidden = noUploadedChanges;
|
||||
if (!noUploadedChanges)
|
||||
|
@ -203,6 +204,17 @@ using namespace osm;
|
|||
}
|
||||
}
|
||||
|
||||
- (void)setLocalChangesHidden:(BOOL)isHidden
|
||||
{
|
||||
self.localChangesView.hidden = isHidden;
|
||||
self.uploadedChangesViewTopOffset.priority = isHidden ? UILayoutPriorityDefaultHigh : UILayoutPriorityDefaultLow;
|
||||
}
|
||||
|
||||
- (void)setUploadedChangesDisabled:(BOOL)isDisabled
|
||||
{
|
||||
self.uploadedChangesView.alpha = isDisabled ? 0.4 : 1.;
|
||||
}
|
||||
|
||||
#pragma mark - Actions
|
||||
|
||||
- (void)performOnlineAction:(TMWMVoidBlock)block
|
||||
|
@ -254,14 +266,14 @@ using namespace osm;
|
|||
- (IBAction)logout
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatAuthorization, kStatLogout)];
|
||||
MWMAuthorizationStoreCredentials({});
|
||||
AuthorizationStoreCredentials({});
|
||||
[self cancel];
|
||||
}
|
||||
|
||||
- (IBAction)cancel
|
||||
{
|
||||
if (!self.isCalledFromSettings)
|
||||
MWMAuthorizationSetUserSkip();
|
||||
AuthorizationSetUserSkip();
|
||||
UINavigationController * parentNavController = self.navigationController.navigationController;
|
||||
if (parentNavController)
|
||||
[parentNavController popViewControllerAnimated:YES];
|
||||
|
|
|
@ -151,7 +151,7 @@ using namespace osm;
|
|||
[self stopSpinner];
|
||||
if (auth.IsAuthorized())
|
||||
{
|
||||
MWMAuthorizationStoreCredentials(auth.GetKeySecret());
|
||||
osm_auth_ios::AuthorizationStoreCredentials(auth.GetKeySecret());
|
||||
[self dismissViewControllerAnimated:YES completion:nil];
|
||||
}
|
||||
else
|
||||
|
|
|
@ -29,14 +29,16 @@ typedef NS_OPTIONS(NSUInteger, MWMFieldCorrect)
|
|||
|
||||
@implementation MWMAuthorizationSignupViewController
|
||||
|
||||
using namespace osm_auth_ios;
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
self.title = L(@"sign_up");
|
||||
|
||||
MWMAuthorizationConfigButton(self.signupGoogleButton, MWMAuthorizationButtonTypeGoogle);
|
||||
MWMAuthorizationConfigButton(self.signupFacebookButton, MWMAuthorizationButtonTypeFacebook);
|
||||
MWMAuthorizationConfigButton(self.signupOSMButton, MWMAuthorizationButtonTypeOSM);
|
||||
AuthorizationConfigButton(self.signupGoogleButton, AuthorizationButtonType::AuthorizationButtonTypeGoogle);
|
||||
AuthorizationConfigButton(self.signupFacebookButton, AuthorizationButtonType::AuthorizationButtonTypeFacebook);
|
||||
AuthorizationConfigButton(self.signupOSMButton, AuthorizationButtonType::AuthorizationButtonTypeOSM);
|
||||
|
||||
self.isCorrect = MWMFieldCorrectNO;
|
||||
}
|
||||
|
@ -51,7 +53,7 @@ typedef NS_OPTIONS(NSUInteger, MWMFieldCorrect)
|
|||
self.signupOSMButton.enabled = enabled;
|
||||
CALayer * layer = self.signupOSMButton.layer;
|
||||
layer.borderColor =
|
||||
(enabled ? MWMAuthorizationButtonBackgroundColor(MWMAuthorizationButtonTypeOSM)
|
||||
(enabled ? AuthorizationButtonBackgroundColor(AuthorizationButtonType::AuthorizationButtonTypeOSM)
|
||||
: [UIColor clearColor])
|
||||
.CGColor;
|
||||
}
|
||||
|
|
|
@ -148,7 +148,7 @@ NSString * getVerifier(NSString * urlString)
|
|||
[self stopSpinner];
|
||||
if (OsmOAuth::IsValid(ks))
|
||||
{
|
||||
MWMAuthorizationStoreCredentials(ks);
|
||||
osm_auth_ios::AuthorizationStoreCredentials(ks);
|
||||
[self dismissViewControllerAnimated:NO completion:nil];
|
||||
}
|
||||
else
|
||||
|
|
|
@ -169,7 +169,7 @@ NSString * reuseIdentifier(MWMPlacePageCellType cellType)
|
|||
if (!m_edited_cells.empty())
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatEdit, kStatSave)];
|
||||
MWMAuthorizationSetNeedCheck(YES);
|
||||
osm_auth_ios::AuthorizationSetNeedCheck(YES);
|
||||
self.entity.cuisines = self.cuisines;
|
||||
[self.entity saveEditedCells:m_edited_cells];
|
||||
}
|
||||
|
|
|
@ -726,7 +726,8 @@ NSString * const kAuthorizationSegue = @"Map2AuthorizationSegue";
|
|||
|
||||
- (void)checkAuthorization
|
||||
{
|
||||
BOOL const isAfterFirstEdit = MWMAuthorizationIsNeedCheck() && !MWMAuthorizationHaveCredentials() && !MWMAuthorizationIsUserSkip();
|
||||
using namespace osm_auth_ios;
|
||||
BOOL const isAfterFirstEdit = AuthorizationIsNeedCheck() && !AuthorizationHaveCredentials() && !AuthorizationIsUserSkip();
|
||||
if (isAfterFirstEdit)
|
||||
{
|
||||
[[Statistics instance] logEvent:kStatEventName(kStatPlacePage, kStatEditTime)
|
||||
|
|
|
@ -106,6 +106,8 @@ void InitLocalizedStrings()
|
|||
ActiveMapsObserver * m_mapsObserver;
|
||||
}
|
||||
|
||||
using namespace osm_auth_ios;
|
||||
|
||||
+ (MapsAppDelegate *)theApp
|
||||
{
|
||||
return (MapsAppDelegate *)[UIApplication sharedApplication].delegate;
|
||||
|
@ -464,7 +466,7 @@ void InitLocalizedStrings()
|
|||
[Alohalytics forceUpload:callback];
|
||||
});
|
||||
// 2. Upload map edits (if any).
|
||||
if (osm::Editor::Instance().HaveSomethingToUpload() && MWMAuthorizationHaveCredentials())
|
||||
if (osm::Editor::Instance().HaveSomethingToUpload() && AuthorizationHaveCredentials())
|
||||
{
|
||||
runFetchTask(^
|
||||
{
|
||||
|
@ -477,7 +479,7 @@ void InitLocalizedStrings()
|
|||
case UploadResult::Error: callback(UIBackgroundFetchResultFailed); break;
|
||||
case UploadResult::NothingToUpload: callback(UIBackgroundFetchResultNoData); break;
|
||||
}
|
||||
} with:MWMAuthorizationGetCredentials()];
|
||||
} with:AuthorizationGetCredentials()];
|
||||
});
|
||||
}
|
||||
// 3. Check if map for current location is already downloaded, and if not - notify user to download it.
|
||||
|
@ -506,7 +508,7 @@ void InitLocalizedStrings()
|
|||
}
|
||||
// Upload map edits if any, but only if we have Internet connection and user has already been authorized.
|
||||
if (osm::Editor::Instance().HaveSomethingToUpload() &&
|
||||
MWMAuthorizationHaveCredentials() &&
|
||||
AuthorizationHaveCredentials() &&
|
||||
Platform::EConnectionType::CONNECTION_NONE != Platform::ConnectionStatus())
|
||||
{
|
||||
void (^finishEditorUploadTaskBlock)() = ^
|
||||
|
@ -524,7 +526,7 @@ void InitLocalizedStrings()
|
|||
[MapsAppDelegate uploadLocalMapEdits:^(osm::Editor::UploadResult /*ignore it here*/)
|
||||
{
|
||||
finishEditorUploadTaskBlock();
|
||||
} with:MWMAuthorizationGetCredentials()];
|
||||
} with:AuthorizationGetCredentials()];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9531" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="Wns-nH-AQU">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="9531" systemVersion="15A284" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="Wns-nH-AQU">
|
||||
<dependencies>
|
||||
<deployment version="2048" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
|
||||
|
@ -66,10 +66,10 @@
|
|||
<color key="backgroundColor" red="0.96078431372549022" green="0.96078431372549022" blue="0.95686274509803915" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<prototypes>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="checkmark" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="SelectableCell" id="6zO-4O-plh" customClass="SelectableCell">
|
||||
<rect key="frame" x="0.0" y="114" width="600" height="44"/>
|
||||
<rect key="frame" x="0.0" y="113" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="6zO-4O-plh" id="9W6-2l-MFB">
|
||||
<rect key="frame" x="0.0" y="0.0" width="561" height="44"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="561" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Metrics" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="477" translatesAutoresizingMaskIntoConstraints="NO" id="fhF-kM-tcR">
|
||||
|
@ -97,10 +97,10 @@
|
|||
</connections>
|
||||
</tableViewCell>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="SwitchCell" id="5Ht-CR-a67" customClass="SwitchCell">
|
||||
<rect key="frame" x="0.0" y="158" width="600" height="44"/>
|
||||
<rect key="frame" x="0.0" y="157" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="5Ht-CR-a67" id="egv-pz-GkJ">
|
||||
<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="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Statistics" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="13" preferredMaxLayoutWidth="462" translatesAutoresizingMaskIntoConstraints="NO" id="HGH-S1-QeY">
|
||||
|
@ -144,10 +144,10 @@
|
|||
</connections>
|
||||
</tableViewCell>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="LinkCell" id="yh8-cr-14c" customClass="LinkCell">
|
||||
<rect key="frame" x="0.0" y="202" width="600" height="44"/>
|
||||
<rect key="frame" x="0.0" y="201" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="yh8-cr-14c" id="MYm-HI-oOR">
|
||||
<rect key="frame" x="0.0" y="0.0" width="567" height="44"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="567" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="About" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="483" translatesAutoresizingMaskIntoConstraints="NO" id="8jb-wX-P4h">
|
||||
|
@ -208,7 +208,7 @@
|
|||
<rect key="frame" x="0.0" y="35" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Hgm-jL-Gnn" id="LeE-yP-Eoi">
|
||||
<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="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Auto" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="477" translatesAutoresizingMaskIntoConstraints="NO" id="sHx-XL-o9h">
|
||||
|
@ -241,7 +241,7 @@
|
|||
<rect key="frame" x="0.0" y="79" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="WyO-qs-a7i" id="q2k-AU-VdG">
|
||||
<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="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="On" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="477" translatesAutoresizingMaskIntoConstraints="NO" id="um4-D2-sR5">
|
||||
|
@ -274,7 +274,7 @@
|
|||
<rect key="frame" x="0.0" y="123" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="HHw-BT-UeJ" id="WD5-kW-BlC">
|
||||
<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="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Off" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="477" translatesAutoresizingMaskIntoConstraints="NO" id="abU-K0-dr3">
|
||||
|
@ -336,7 +336,7 @@
|
|||
<rect key="frame" x="0.0" y="35" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="HL5-jQ-yNK" id="DYw-KH-oDU">
|
||||
<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="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="None" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="477" translatesAutoresizingMaskIntoConstraints="NO" id="2i3-c9-tdU">
|
||||
|
@ -369,7 +369,7 @@
|
|||
<rect key="frame" x="0.0" y="79" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="8Cq-dm-roX" id="62b-vT-xng">
|
||||
<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="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1 hour" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="477" translatesAutoresizingMaskIntoConstraints="NO" id="J1O-iW-GF3">
|
||||
|
@ -402,7 +402,7 @@
|
|||
<rect key="frame" x="0.0" y="123" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="DIL-q2-mUp" id="IqW-Xu-xVP">
|
||||
<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="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2 hours" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="477" translatesAutoresizingMaskIntoConstraints="NO" id="55i-C3-b9S">
|
||||
|
@ -435,7 +435,7 @@
|
|||
<rect key="frame" x="0.0" y="167" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="1Mm-WA-eyt" id="lNb-wL-PFo">
|
||||
<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="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="6 hours" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="477" translatesAutoresizingMaskIntoConstraints="NO" id="QrP-xT-fcM">
|
||||
|
@ -468,7 +468,7 @@
|
|||
<rect key="frame" x="0.0" y="211" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="JLY-Qt-y88" id="jPr-Kt-mLi">
|
||||
<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="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="12 hours" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="477" translatesAutoresizingMaskIntoConstraints="NO" id="HyC-if-zpD">
|
||||
|
@ -501,7 +501,7 @@
|
|||
<rect key="frame" x="0.0" y="255" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="mbv-1J-wSI" id="oPS-HW-hfW">
|
||||
<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="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="1 day" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="477" translatesAutoresizingMaskIntoConstraints="NO" id="uhN-0k-BL7">
|
||||
|
@ -534,7 +534,7 @@
|
|||
<rect key="frame" x="0.0" y="299" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="js7-Hu-EdJ" id="8rz-AY-REp">
|
||||
<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="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="2 days" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="477" translatesAutoresizingMaskIntoConstraints="NO" id="b4c-Ji-Ctk">
|
||||
|
@ -590,10 +590,10 @@
|
|||
<color key="backgroundColor" red="0.96078431372549022" green="0.96078431372549022" blue="0.96078431372549022" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<prototypes>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="checkmark" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="SelectableCell" id="79I-kz-hl4" customClass="SelectableCell">
|
||||
<rect key="frame" x="0.0" y="50" width="600" height="44"/>
|
||||
<rect key="frame" x="0.0" y="49" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="79I-kz-hl4" id="gBB-ji-big">
|
||||
<rect key="frame" x="0.0" y="0.0" width="561" height="44"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="561" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Русский" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="477" translatesAutoresizingMaskIntoConstraints="NO" id="FSn-fP-n3e">
|
||||
|
@ -622,10 +622,10 @@
|
|||
</connections>
|
||||
</tableViewCell>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="LinkCell" id="lO6-zb-qb8" customClass="LinkCell">
|
||||
<rect key="frame" x="0.0" y="94" width="600" height="44"/>
|
||||
<rect key="frame" x="0.0" y="93" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="lO6-zb-qb8" id="35k-Nb-XSD">
|
||||
<rect key="frame" x="0.0" y="0.0" width="567" height="44"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="567" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Other" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="483" translatesAutoresizingMaskIntoConstraints="NO" id="arm-Sx-diY">
|
||||
|
@ -679,10 +679,10 @@
|
|||
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<prototypes>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="default" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="SelectableCell" id="6Px-TO-sMc" customClass="SelectableCell">
|
||||
<rect key="frame" x="0.0" y="50" width="600" height="44"/>
|
||||
<rect key="frame" x="0.0" y="49" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="6Px-TO-sMc" id="aqp-aV-B3y">
|
||||
<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="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Русский" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="516" translatesAutoresizingMaskIntoConstraints="NO" id="wBg-nH-SXL">
|
||||
|
@ -1576,6 +1576,7 @@
|
|||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="linkBlue"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorHighlightedName" value="linkBlueHighlighted"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="clearColor"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="forgot_password"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
|
@ -1645,13 +1646,13 @@
|
|||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
</imageView>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NhV-I9-K6M">
|
||||
<rect key="frame" x="16" y="60" width="568" height="144"/>
|
||||
<rect key="frame" x="16" y="66" width="568" height="112"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="76x-zf-kIz">
|
||||
<rect key="frame" x="0.0" y="8" width="568" height="64"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="568" height="44"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_device" translatesAutoresizingMaskIntoConstraints="NO" id="UJu-4R-Fgg">
|
||||
<rect key="frame" x="16" y="18" width="28" height="28"/>
|
||||
<rect key="frame" x="16" y="8" width="28" height="28"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="28" id="8xb-Jj-CRF"/>
|
||||
<constraint firstAttribute="height" constant="28" id="CCw-mb-XjT"/>
|
||||
|
@ -1661,7 +1662,7 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="IHU-D3-OHh" customClass="MWMButton">
|
||||
<rect key="frame" x="520" y="0.0" width="48" height="64"/>
|
||||
<rect key="frame" x="520" y="0.0" width="48" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="48" id="YRa-pI-t6A"/>
|
||||
</constraints>
|
||||
|
@ -1674,23 +1675,13 @@
|
|||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Changes: 4" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="444" translatesAutoresizingMaskIntoConstraints="NO" id="6t0-ph-htV">
|
||||
<rect key="frame" x="60" y="14" width="444" height="21"/>
|
||||
<rect key="frame" x="60" y="12" width="444" height="20"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackPrimaryText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Not uploaded" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="444" translatesAutoresizingMaskIntoConstraints="NO" id="HxC-It-AzN">
|
||||
<rect key="frame" x="60" y="37" width="444" height="17"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="medium14"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackSecondaryText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="not_sent"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
|
@ -1698,17 +1689,13 @@
|
|||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="UJu-4R-Fgg" firstAttribute="leading" secondItem="76x-zf-kIz" secondAttribute="leading" constant="16" id="6Dz-Wt-mkH"/>
|
||||
<constraint firstItem="HxC-It-AzN" firstAttribute="leading" secondItem="6t0-ph-htV" secondAttribute="leading" id="6kf-mG-yIF"/>
|
||||
<constraint firstItem="6t0-ph-htV" firstAttribute="leading" secondItem="UJu-4R-Fgg" secondAttribute="trailing" constant="16" id="7oM-Uz-4bd"/>
|
||||
<constraint firstItem="HxC-It-AzN" firstAttribute="trailing" secondItem="6t0-ph-htV" secondAttribute="trailing" id="83E-Tn-7Sy"/>
|
||||
<constraint firstAttribute="height" constant="64" id="849-f8-kYC"/>
|
||||
<constraint firstItem="HxC-It-AzN" firstAttribute="top" secondItem="6t0-ph-htV" secondAttribute="bottom" constant="2" id="FnE-xj-Pg0"/>
|
||||
<constraint firstAttribute="height" constant="44" id="849-f8-kYC"/>
|
||||
<constraint firstAttribute="trailing" secondItem="IHU-D3-OHh" secondAttribute="trailing" id="Nm6-By-Rej"/>
|
||||
<constraint firstItem="UJu-4R-Fgg" firstAttribute="centerY" secondItem="76x-zf-kIz" secondAttribute="centerY" id="TTe-a3-8qh"/>
|
||||
<constraint firstItem="6t0-ph-htV" firstAttribute="top" secondItem="76x-zf-kIz" secondAttribute="top" priority="500" constant="14" id="VlF-jn-ev4"/>
|
||||
<constraint firstItem="IHU-D3-OHh" firstAttribute="leading" secondItem="6t0-ph-htV" secondAttribute="trailing" constant="16" id="Vzc-x7-u1R"/>
|
||||
<constraint firstAttribute="bottom" secondItem="IHU-D3-OHh" secondAttribute="bottom" id="roO-hZ-Gpb"/>
|
||||
<constraint firstItem="6t0-ph-htV" firstAttribute="centerY" secondItem="76x-zf-kIz" secondAttribute="centerY" priority="250" id="z2N-8b-9US"/>
|
||||
<constraint firstItem="6t0-ph-htV" firstAttribute="centerY" secondItem="76x-zf-kIz" secondAttribute="centerY" id="z2N-8b-9US"/>
|
||||
<constraint firstItem="IHU-D3-OHh" firstAttribute="top" secondItem="76x-zf-kIz" secondAttribute="top" id="zgQ-vN-zG7"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
|
@ -1719,7 +1706,7 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CCh-RG-hju">
|
||||
<rect key="frame" x="0.0" y="80" width="568" height="64"/>
|
||||
<rect key="frame" x="0.0" y="48" width="568" height="64"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_upload" translatesAutoresizingMaskIntoConstraints="NO" id="K0H-Ik-G96">
|
||||
<rect key="frame" x="16" y="18" width="28" height="28"/>
|
||||
|
@ -1732,7 +1719,7 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Changes: 2036" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="492" translatesAutoresizingMaskIntoConstraints="NO" id="AOM-R5-eiO">
|
||||
<rect key="frame" x="60" y="14" width="492" height="21"/>
|
||||
<rect key="frame" x="60" y="14" width="492" height="20"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
|
@ -1775,17 +1762,18 @@
|
|||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="CCh-RG-hju" firstAttribute="top" secondItem="76x-zf-kIz" secondAttribute="bottom" constant="8" id="BoQ-jd-TND"/>
|
||||
<constraint firstItem="CCh-RG-hju" firstAttribute="top" secondItem="76x-zf-kIz" secondAttribute="bottom" priority="700" constant="4" id="BoQ-jd-TND"/>
|
||||
<constraint firstItem="CCh-RG-hju" firstAttribute="leading" secondItem="NhV-I9-K6M" secondAttribute="leading" id="IbU-cw-uQh"/>
|
||||
<constraint firstItem="76x-zf-kIz" firstAttribute="leading" secondItem="NhV-I9-K6M" secondAttribute="leading" id="Q2q-3z-CN8"/>
|
||||
<constraint firstAttribute="trailing" secondItem="76x-zf-kIz" secondAttribute="trailing" id="QAD-FU-IM4"/>
|
||||
<constraint firstAttribute="bottom" secondItem="CCh-RG-hju" secondAttribute="bottom" id="WHS-8l-Jxf"/>
|
||||
<constraint firstItem="76x-zf-kIz" firstAttribute="top" secondItem="NhV-I9-K6M" secondAttribute="top" constant="8" id="ws8-po-XkI"/>
|
||||
<constraint firstItem="CCh-RG-hju" firstAttribute="top" secondItem="NhV-I9-K6M" secondAttribute="top" priority="350" constant="56" id="qJP-Ys-7fH"/>
|
||||
<constraint firstItem="76x-zf-kIz" firstAttribute="top" secondItem="NhV-I9-K6M" secondAttribute="top" id="ws8-po-XkI"/>
|
||||
<constraint firstAttribute="trailing" secondItem="CCh-RG-hju" secondAttribute="trailing" id="xBL-hE-2WK"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="300" translatesAutoresizingMaskIntoConstraints="NO" id="tzz-yF-441">
|
||||
<rect key="frame" x="16" y="228" width="568" height="82"/>
|
||||
<rect key="frame" x="16" y="196" width="568" height="82"/>
|
||||
<string key="text">OpenStreetMap is built by a community of mappers that contribute and maintain data about roads, trails, cafés, railway stations, and much more, all over
|
||||
the world. Join us!</string>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="14"/>
|
||||
|
@ -1797,7 +1785,7 @@ the world. Join us!</string>
|
|||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cT8-b7-zTj">
|
||||
<rect key="frame" x="16" y="334" width="568" height="44"/>
|
||||
<rect key="frame" x="16" y="302" width="568" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="44" id="sre-fS-1iA"/>
|
||||
</constraints>
|
||||
|
@ -1813,20 +1801,23 @@ the world. Join us!</string>
|
|||
<userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
|
||||
<integer key="value" value="1"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="color" keyPath="layer.borderUIColor">
|
||||
<color key="value" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="calibratedRGB"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="loginGoogle" destination="iZ6-Zi-bkZ" eventType="touchUpInside" id="ozK-l5-X1m"/>
|
||||
</connections>
|
||||
</button>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_google" translatesAutoresizingMaskIntoConstraints="NO" id="VTY-T1-l6q">
|
||||
<rect key="frame" x="32" y="342" width="28" height="28"/>
|
||||
<rect key="frame" x="32" y="310" width="28" height="28"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="28" id="3pO-7k-3b7"/>
|
||||
<constraint firstAttribute="width" constant="28" id="hdo-64-JVl"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="U4B-pb-aFf">
|
||||
<rect key="frame" x="16" y="394" width="568" height="44"/>
|
||||
<rect key="frame" x="16" y="362" width="568" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="44" id="Mm9-WB-LKh"/>
|
||||
</constraints>
|
||||
|
@ -1840,20 +1831,23 @@ the world. Join us!</string>
|
|||
<userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
|
||||
<integer key="value" value="1"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="color" keyPath="layer.borderUIColor">
|
||||
<color key="value" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="calibratedRGB"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="loginFacebook" destination="iZ6-Zi-bkZ" eventType="touchUpInside" id="osd-dp-2jK"/>
|
||||
</connections>
|
||||
</button>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="login_facebook" translatesAutoresizingMaskIntoConstraints="NO" id="bGN-fy-oFg">
|
||||
<rect key="frame" x="32" y="402" width="28" height="28"/>
|
||||
<rect key="frame" x="32" y="370" width="28" height="28"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="28" id="5HC-P5-MxA"/>
|
||||
<constraint firstAttribute="height" constant="28" id="z1G-WV-nDv"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Gqm-JS-hos">
|
||||
<rect key="frame" x="16" y="454" width="568" height="44"/>
|
||||
<rect key="frame" x="16" y="422" width="568" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="44" id="wqb-IS-uAC"/>
|
||||
</constraints>
|
||||
|
@ -1867,13 +1861,16 @@ the world. Join us!</string>
|
|||
<userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
|
||||
<integer key="value" value="1"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="color" keyPath="layer.borderUIColor">
|
||||
<color key="value" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="calibratedRGB"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="loginOSM" destination="iZ6-Zi-bkZ" eventType="touchUpInside" id="U8A-dL-xzX"/>
|
||||
</connections>
|
||||
</button>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Don't have OpenStreetMap account?" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="340" translatesAutoresizingMaskIntoConstraints="NO" id="nhm-W1-U8A">
|
||||
<rect key="frame" x="16" y="508" width="568" height="16"/>
|
||||
<rect key="frame" x="16" y="507" width="568" height="16"/>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="14"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
|
@ -1892,6 +1889,7 @@ the world. Join us!</string>
|
|||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="whitePrimaryText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorHighlightedName" value="whitePrimaryTextHighlighted"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="clearColor"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="register_at_openstreetmap"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
|
@ -1908,6 +1906,7 @@ the world. Join us!</string>
|
|||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="whitePrimaryText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorHighlightedName" value="whitePrimaryTextHighlighted"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="clearColor"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="logout"/>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
|
@ -1940,9 +1939,9 @@ the world. Join us!</string>
|
|||
<constraint firstItem="nhm-W1-U8A" firstAttribute="leading" secondItem="i64-CY-UO1" secondAttribute="leading" constant="16" id="IY6-Lh-MEy"/>
|
||||
<constraint firstItem="Gqm-JS-hos" firstAttribute="leading" secondItem="i64-CY-UO1" secondAttribute="leading" constant="16" id="JDC-5v-2su"/>
|
||||
<constraint firstAttribute="trailing" secondItem="nhm-W1-U8A" secondAttribute="trailing" constant="16" id="JXx-MF-idB"/>
|
||||
<constraint firstItem="tzz-yF-441" firstAttribute="top" secondItem="NhV-I9-K6M" secondAttribute="bottom" priority="700" constant="24" id="TIM-Gb-mUW"/>
|
||||
<constraint firstItem="tzz-yF-441" firstAttribute="top" secondItem="NhV-I9-K6M" secondAttribute="bottom" priority="700" constant="18" id="TIM-Gb-mUW"/>
|
||||
<constraint firstItem="U4B-pb-aFf" firstAttribute="leading" secondItem="i64-CY-UO1" secondAttribute="leading" constant="16" id="Txe-Bm-4r9"/>
|
||||
<constraint firstItem="NhV-I9-K6M" firstAttribute="top" secondItem="i64-CY-UO1" secondAttribute="top" constant="60" id="ViN-zN-DBO"/>
|
||||
<constraint firstItem="NhV-I9-K6M" firstAttribute="top" secondItem="i64-CY-UO1" secondAttribute="top" constant="66" id="ViN-zN-DBO"/>
|
||||
<constraint firstAttribute="trailing" secondItem="Gqm-JS-hos" secondAttribute="trailing" constant="16" id="YOc-00-zbV"/>
|
||||
<constraint firstAttribute="trailing" secondItem="cT8-b7-zTj" secondAttribute="trailing" constant="16" id="Z9E-Ty-Gdm"/>
|
||||
<constraint firstItem="y41-VX-XhB" firstAttribute="top" secondItem="7X8-ED-Si4" secondAttribute="bottom" id="aG5-m9-gqr"/>
|
||||
|
@ -1975,9 +1974,7 @@ the world. Join us!</string>
|
|||
<outlet property="leftBarButton" destination="VjK-MF-Vva" id="Vmr-x5-xbE"/>
|
||||
<outlet property="localChangesActionButton" destination="IHU-D3-OHh" id="p6c-et-S7V"/>
|
||||
<outlet property="localChangesLabel" destination="6t0-ph-htV" id="4io-4R-QlC"/>
|
||||
<outlet property="localChangesLabelCenter" destination="z2N-8b-9US" id="Srn-l5-ST8"/>
|
||||
<outlet property="localChangesNotUploadedLabel" destination="HxC-It-AzN" id="sCg-Js-ueA"/>
|
||||
<outlet property="localChangesViewHeight" destination="849-f8-kYC" id="s4v-sq-MVQ"/>
|
||||
<outlet property="localChangesView" destination="76x-zf-kIz" id="sS1-4x-65O"/>
|
||||
<outlet property="loginFacebookButton" destination="U4B-pb-aFf" id="dnr-oP-1WM"/>
|
||||
<outlet property="loginGoogleButton" destination="cT8-b7-zTj" id="SrU-zj-32M"/>
|
||||
<outlet property="loginOSMButton" destination="Gqm-JS-hos" id="zJS-TR-HDM"/>
|
||||
|
@ -1989,7 +1986,9 @@ the world. Join us!</string>
|
|||
<outlet property="signupTitle" destination="nhm-W1-U8A" id="hbV-rR-FNt"/>
|
||||
<outlet property="uploadedChangesLabel" destination="AOM-R5-eiO" id="6hh-Ri-fb8"/>
|
||||
<outlet property="uploadedChangesLabelCenter" destination="43h-fF-ESJ" id="6rZ-DX-OBi"/>
|
||||
<outlet property="uploadedChangesView" destination="CCh-RG-hju" id="ngN-nc-7WQ"/>
|
||||
<outlet property="uploadedChangesViewHeight" destination="Aib-tT-sbU" id="twQ-Dz-Avc"/>
|
||||
<outlet property="uploadedChangesViewTopOffset" destination="qJP-Ys-7fH" id="Cmk-JT-Pyq"/>
|
||||
<segue destination="anB-7S-ebY" kind="custom" identifier="Authorization2WebViewAuthorizationSegue" customClass="MWMSegue" id="Pet-Wq-d4a"/>
|
||||
<segue destination="4R7-Vk-fQr" kind="custom" identifier="Authorization2OSMAuthorizationSegue" customClass="MWMSegue" id="nJf-7z-2TX"/>
|
||||
</connections>
|
||||
|
|
|
@ -38,6 +38,7 @@ NSDictionary<NSString *, UIColor *> * night =
|
|||
@"orange" : [UIColor colorWithRed:250. green:scaled(190.) blue:scaled(10.) alpha:alpha100],
|
||||
// Blue color (use for links and phone numbers)
|
||||
@"linkBlue" : [UIColor colorWithRed:scaled(255.) green:scaled(230.) blue:scaled(140.) alpha:alpha100],
|
||||
@"linkBlueHighlighted" : [UIColor colorWithRed:scaled(255.) green:scaled(230.) blue:scaled(140.) alpha:alpha30],
|
||||
@"linkBlueDark" : [UIColor colorWithRed:scaled(200.) green:scaled(180.) blue:scaled(110.) alpha:alpha100],
|
||||
@"blackPrimaryText" : [UIColor colorWithWhite:1. alpha:alpha90],
|
||||
@"blackSecondaryText" : [UIColor colorWithWhite:1. alpha:alpha70],
|
||||
|
@ -66,6 +67,7 @@ NSDictionary<NSString *, UIColor *> * day =
|
|||
@"orange" : [UIColor colorWithRed:1. green:scaled(120.) blue:scaled(5.) alpha:alpha100],
|
||||
// Blue color (use for links and phone numbers)
|
||||
@"linkBlue" : [UIColor colorWithRed:scaled(30.) green:scaled(150.) blue:scaled(240.) alpha:alpha100],
|
||||
@"linkBlueHighlighted" : [UIColor colorWithRed:scaled(30.) green:scaled(150.) blue:scaled(240.) alpha:alpha30],
|
||||
@"linkBlueDark" : [UIColor colorWithRed:scaled(25.) green:scaled(135.) blue:scaled(215.) alpha:alpha100],
|
||||
@"blackPrimaryText" : [UIColor colorWithWhite:0. alpha:alpha87],
|
||||
@"blackSecondaryText" : [UIColor colorWithWhite:0. alpha:alpha54],
|
||||
|
@ -158,6 +160,11 @@ UIColor * color(SEL cmd)
|
|||
return color(_cmd);
|
||||
}
|
||||
|
||||
+ (UIColor *)linkBlueHighlighted
|
||||
{
|
||||
return color(_cmd);
|
||||
}
|
||||
|
||||
+ (UIColor *)linkBlueDark
|
||||
{
|
||||
return color(_cmd);
|
||||
|
@ -198,6 +205,12 @@ UIColor * color(SEL cmd)
|
|||
return [UIColor colorWithWhite:1. alpha:alpha87];
|
||||
}
|
||||
|
||||
+ (UIColor *)whitePrimaryTextHighlighted
|
||||
{
|
||||
// use only for highlighted colors!
|
||||
return [UIColor colorWithWhite:1. alpha:alpha30];
|
||||
}
|
||||
|
||||
+ (UIColor *)whiteSecondaryText
|
||||
{
|
||||
return color(_cmd);
|
||||
|
|
Loading…
Add table
Reference in a new issue