forked from organicmaps/organicmaps
[ios] Added "all maps" action buttons.
This commit is contained in:
parent
63228af403
commit
2b2d886c80
4 changed files with 153 additions and 130 deletions
|
@ -5,10 +5,6 @@
|
|||
|
||||
@interface MWMBaseMapDownloaderViewController : MWMViewController <UITableViewDelegate, MWMMapDownloaderProtocol, MWMMapDownloaderButtonTableViewCellProtocol>
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UILabel * allMapsLabel;
|
||||
|
||||
@property (nonatomic) BOOL showAllMapsView;
|
||||
|
||||
- (void)configTable;
|
||||
- (void)configAllMapsView;
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#import "Common.h"
|
||||
#import "MapsAppDelegate.h"
|
||||
#import "MWMAlertViewController.h"
|
||||
#import "MWMButton.h"
|
||||
#import "MWMFrameworkListener.h"
|
||||
#import "MWMMapDownloaderDefaultDataSource.h"
|
||||
#import "MWMMapDownloaderLargeCountryTableViewCell.h"
|
||||
|
@ -18,24 +19,25 @@
|
|||
|
||||
#include "storage/index.hpp"
|
||||
|
||||
extern NSString * const kCountryCellIdentifier = @"MWMMapDownloaderTableViewCell";
|
||||
extern NSString * const kSubplaceCellIdentifier = @"MWMMapDownloaderSubplaceTableViewCell";
|
||||
extern NSString * const kPlaceCellIdentifier = @"MWMMapDownloaderPlaceTableViewCell";
|
||||
extern NSString * const kLargeCountryCellIdentifier = @"MWMMapDownloaderLargeCountryTableViewCell";
|
||||
extern NSString * const kButtonCellIdentifier = @"MWMMapDownloaderButtonTableViewCell";
|
||||
extern NSString * const kCountryCellIdentifier = @"MWMMapDownloaderTableViewCell";
|
||||
extern NSString * const kLargeCountryCellIdentifier = @"MWMMapDownloaderLargeCountryTableViewCell";
|
||||
extern NSString * const kPlaceCellIdentifier = @"MWMMapDownloaderPlaceTableViewCell";
|
||||
extern NSString * const kSubplaceCellIdentifier = @"MWMMapDownloaderSubplaceTableViewCell";
|
||||
|
||||
namespace
|
||||
{
|
||||
NSString * const kAllMapsLabelFormat = @"%@ %@ (%@)";
|
||||
NSString * const kAllMapsLabelFormat = @"%@ (%@)";
|
||||
NSString * const kCancelActionTitle = L(@"cancel");
|
||||
NSString * const kCancelAllTitle = L(@"downloader_cancel_all");
|
||||
NSString * const kDeleteActionTitle = L(@"downloader_delete_map");
|
||||
NSString * const kDownloaAllTitle = L(@"downloader_download_all_button");
|
||||
NSString * const kDownloadActionTitle = L(@"downloader_download_map");
|
||||
NSString * const kDownloadAllTitle = L(@"downloader_download_all_button");
|
||||
NSString * const kDownloadingTitle = L(@"downloader_downloading");
|
||||
NSString * const kMapsTitle = L(@"downloader_maps");
|
||||
NSString * const kShowActionTitle = L(@"zoom_to_country");
|
||||
NSString * const kUpdateActionTitle = L(@"downloader_status_outdated");
|
||||
NSString * const kUpdateAllTitle = L(@"downloader_update_all_button");
|
||||
|
||||
NSString * const kBaseControllerIdentifier = @"MWMBaseMapDownloaderViewController";
|
||||
NSString * const kControllerIdentifier = @"MWMMapDownloaderViewController";
|
||||
|
@ -47,7 +49,8 @@ NSString * const kControllerIdentifier = @"MWMMapDownloaderViewController";
|
|||
|
||||
@property (weak, nonatomic) IBOutlet UIView * allMapsView;
|
||||
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * allMapsViewBottomOffset;
|
||||
@property (weak, nonatomic) IBOutlet UIButton * allMapsButton;
|
||||
@property (weak, nonatomic) IBOutlet MWMButton * allMapsButton;
|
||||
@property (weak, nonatomic) IBOutlet MWMButton * allMapsCancelButton;
|
||||
|
||||
@property (nonatomic) UIImage * navBarBackground;
|
||||
@property (nonatomic) UIImage * navBarShadow;
|
||||
|
@ -66,6 +69,8 @@ NSString * const kControllerIdentifier = @"MWMMapDownloaderViewController";
|
|||
@property (nonatomic, readonly) NSString * parentCountryId;
|
||||
@property (nonatomic, readonly) TMWMMapDownloaderMode mode;
|
||||
|
||||
@property (nonatomic) BOOL showAllMapsButtons;
|
||||
|
||||
@end
|
||||
|
||||
using namespace storage;
|
||||
|
@ -345,18 +350,47 @@ using namespace storage;
|
|||
|
||||
- (void)configAllMapsView
|
||||
{
|
||||
self.showAllMapsView = YES;
|
||||
auto const & s = GetFramework().Storage();
|
||||
TCountriesVec downloadedChildren;
|
||||
TCountriesVec availableChildren;
|
||||
TCountryId const parentCountryId = self.parentCountryId.UTF8String;
|
||||
s.GetChildrenInGroups(parentCountryId, downloadedChildren, availableChildren);
|
||||
|
||||
if (availableChildren.empty())
|
||||
if (self.mode == TMWMMapDownloaderMode::Downloaded)
|
||||
{
|
||||
Storage::UpdateInfo updateInfo{};
|
||||
s.GetUpdateInfo(parentCountryId, updateInfo);
|
||||
self.showAllMapsButtons = updateInfo.m_numberOfMwmFilesToUpdate != 0;
|
||||
if (self.showAllMapsButtons)
|
||||
{
|
||||
self.allMapsButton.hidden = NO;
|
||||
[self.allMapsButton
|
||||
setTitle:[NSString stringWithFormat:kAllMapsLabelFormat, kUpdateAllTitle,
|
||||
formattedSize(updateInfo.m_totalUpdateSizeInBytes)]
|
||||
forState:UIControlStateNormal];
|
||||
self.allMapsCancelButton.hidden = YES;
|
||||
}
|
||||
}
|
||||
else if (parentCountryId != s.GetRootId())
|
||||
{
|
||||
TCountriesVec queuedChildren;
|
||||
s.GetQueuedChildren(parentCountryId, queuedChildren);
|
||||
if (!queuedChildren.empty())
|
||||
if (queuedChildren.empty())
|
||||
{
|
||||
TCountriesVec downloadedChildren;
|
||||
TCountriesVec availableChildren;
|
||||
s.GetChildrenInGroups(parentCountryId, downloadedChildren, availableChildren, true /* keepAvailableChildren */);
|
||||
self.showAllMapsButtons = downloadedChildren.size() != availableChildren.size();
|
||||
if (self.showAllMapsButtons)
|
||||
{
|
||||
NodeAttrs nodeAttrs;
|
||||
s.GetNodeAttrs(parentCountryId, nodeAttrs);
|
||||
self.allMapsButton.hidden = NO;
|
||||
[self.allMapsButton
|
||||
setTitle:[NSString stringWithFormat:kAllMapsLabelFormat, kDownloadAllTitle,
|
||||
formattedSize(nodeAttrs.m_mwmSize -
|
||||
nodeAttrs.m_localMwmSize)]
|
||||
forState:UIControlStateNormal];
|
||||
self.allMapsCancelButton.hidden = YES;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
TMwmSize queuedSize = 0;
|
||||
for (TCountryId const & countryId : queuedChildren)
|
||||
|
@ -365,29 +399,19 @@ using namespace storage;
|
|||
s.GetNodeAttrs(countryId, nodeAttrs);
|
||||
queuedSize += nodeAttrs.m_mwmSize;
|
||||
}
|
||||
self.allMapsLabel.text =
|
||||
[NSString stringWithFormat:kAllMapsLabelFormat, kDownloadingTitle,
|
||||
@(queuedChildren.size()), formattedSize(queuedSize)];
|
||||
[self.allMapsButton setTitle:kCancelAllTitle forState:UIControlStateNormal];
|
||||
return;
|
||||
self.showAllMapsButtons = YES;
|
||||
self.allMapsButton.hidden = YES;
|
||||
self.allMapsCancelButton.hidden = NO;
|
||||
[self.allMapsCancelButton
|
||||
setTitle:[NSString stringWithFormat:kAllMapsLabelFormat, kCancelAllTitle,
|
||||
formattedSize(queuedSize)]
|
||||
forState:UIControlStateNormal];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
NodeAttrs nodeAttrs;
|
||||
s.GetNodeAttrs(parentCountryId, nodeAttrs);
|
||||
uint32_t remoteMWMCounter = nodeAttrs.m_mwmCounter - nodeAttrs.m_localMwmCounter;
|
||||
if (remoteMWMCounter != 0)
|
||||
{
|
||||
self.allMapsLabel.text =
|
||||
[NSString stringWithFormat:kAllMapsLabelFormat, kMapsTitle, @(remoteMWMCounter),
|
||||
formattedSize(nodeAttrs.m_mwmSize - nodeAttrs.m_localMwmSize)];
|
||||
[self.allMapsButton setTitle:kDownloaAllTitle forState:UIControlStateNormal];
|
||||
return;
|
||||
}
|
||||
self.showAllMapsButtons = NO;
|
||||
}
|
||||
|
||||
self.showAllMapsView = NO;
|
||||
}
|
||||
|
||||
- (void)refreshAllMapsView
|
||||
|
@ -397,7 +421,7 @@ using namespace storage;
|
|||
|
||||
- (void)refreshAllMapsViewForOffset:(CGFloat)scrollOffset
|
||||
{
|
||||
if (!self.showAllMapsView)
|
||||
if (!self.showAllMapsButtons)
|
||||
return;
|
||||
BOOL const hide = (scrollOffset >= self.lastScrollOffset) && !equalScreenDimensions(scrollOffset, 0.0);
|
||||
self.lastScrollOffset = scrollOffset;
|
||||
|
@ -423,7 +447,7 @@ using namespace storage;
|
|||
{
|
||||
self.skipCountryEventProcessing = YES;
|
||||
TCountryId const parentCountryId = self.parentCountryId.UTF8String;
|
||||
if (parentCountryId == GetFramework().Storage().GetRootId())
|
||||
if (self.mode == TMWMMapDownloaderMode::Downloaded)
|
||||
{
|
||||
[Statistics logEvent:kStatDownloaderMapAction
|
||||
withParameters:@{
|
||||
|
@ -436,36 +460,37 @@ using namespace storage;
|
|||
}
|
||||
else
|
||||
{
|
||||
NSString * allMapsButtonTitle = [self.allMapsButton titleForState:UIControlStateNormal];
|
||||
if ([allMapsButtonTitle isEqualToString:kDownloaAllTitle])
|
||||
{
|
||||
[Statistics logEvent:kStatDownloaderMapAction
|
||||
withParameters:@{
|
||||
kStatAction : kStatDownload,
|
||||
kStatIsAuto : kStatNo,
|
||||
kStatFrom : kStatDownloader,
|
||||
kStatScenario : kStatDownloadGroup
|
||||
}];
|
||||
[MWMStorage downloadNode:parentCountryId
|
||||
alertController:self.alertController
|
||||
onSuccess:nil];
|
||||
}
|
||||
else if ([allMapsButtonTitle isEqualToString:kCancelAllTitle])
|
||||
{
|
||||
[Statistics logEvent:kStatDownloaderMapAction
|
||||
withParameters:@{
|
||||
kStatAction : kStatCancel,
|
||||
kStatIsAuto : kStatNo,
|
||||
kStatFrom : kStatDownloader,
|
||||
kStatScenario : kStatDownloadGroup
|
||||
}];
|
||||
[MWMStorage cancelDownloadNode:parentCountryId];
|
||||
}
|
||||
[Statistics logEvent:kStatDownloaderMapAction
|
||||
withParameters:@{
|
||||
kStatAction : kStatDownload,
|
||||
kStatIsAuto : kStatNo,
|
||||
kStatFrom : kStatDownloader,
|
||||
kStatScenario : kStatDownloadGroup
|
||||
}];
|
||||
[MWMStorage downloadNode:parentCountryId
|
||||
alertController:self.alertController
|
||||
onSuccess:nil];
|
||||
}
|
||||
self.skipCountryEventProcessing = NO;
|
||||
[self processCountryEvent:parentCountryId];
|
||||
}
|
||||
|
||||
- (IBAction)allMapsCancelAction
|
||||
{
|
||||
self.skipCountryEventProcessing = YES;
|
||||
[Statistics logEvent:kStatDownloaderMapAction
|
||||
withParameters:@{
|
||||
kStatAction : kStatCancel,
|
||||
kStatIsAuto : kStatNo,
|
||||
kStatFrom : kStatDownloader,
|
||||
kStatScenario : kStatDownloadGroup
|
||||
}];
|
||||
TCountryId const parentCountryId = self.parentCountryId.UTF8String;
|
||||
[MWMStorage cancelDownloadNode:parentCountryId];
|
||||
self.skipCountryEventProcessing = NO;
|
||||
[self processCountryEvent:parentCountryId];
|
||||
}
|
||||
|
||||
#pragma mark - Countries tree(s) navigation
|
||||
|
||||
- (void)openAvailableMaps
|
||||
|
@ -673,10 +698,10 @@ using namespace storage;
|
|||
self.dataSource = self.defaultDataSource;
|
||||
}
|
||||
|
||||
- (void)setShowAllMapsView:(BOOL)showAllMapsView
|
||||
- (void)setShowAllMapsButtons:(BOOL)showAllMapsButtons
|
||||
{
|
||||
_showAllMapsView = showAllMapsView;
|
||||
self.allMapsView.hidden = !showAllMapsView;
|
||||
_showAllMapsButtons = showAllMapsButtons;
|
||||
self.allMapsView.hidden = !showAllMapsButtons;
|
||||
}
|
||||
|
||||
- (NSString *)parentCountryId
|
||||
|
|
|
@ -27,6 +27,8 @@ using namespace storage;
|
|||
@property (nonatomic, readonly) NSString * parentCountryId;
|
||||
@property (nonatomic, readonly) TMWMMapDownloaderMode mode;
|
||||
|
||||
@property (nonatomic) BOOL showAllMapsButtons;
|
||||
|
||||
- (void)configViews;
|
||||
|
||||
- (void)openAvailableMaps;
|
||||
|
@ -97,28 +99,12 @@ using namespace storage;
|
|||
}
|
||||
else
|
||||
{
|
||||
self.showAllMapsView = NO;
|
||||
self.showAllMapsButtons = NO;
|
||||
self.tableView.hidden = YES;
|
||||
self.noMapsContainer.hidden = NO;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - All Maps Action
|
||||
|
||||
- (void)configAllMapsView
|
||||
{
|
||||
self.showAllMapsView = NO;
|
||||
auto const & s = GetFramework().Storage();
|
||||
Storage::UpdateInfo updateInfo{};
|
||||
if (!s.GetUpdateInfo(s.GetRootId(), updateInfo) || updateInfo.m_numberOfMwmFilesToUpdate == 0)
|
||||
return;
|
||||
self.allMapsLabel.text =
|
||||
[NSString stringWithFormat:@"%@: %@ (%@)", L(@"downloader_outdated_maps"),
|
||||
@(updateInfo.m_numberOfMwmFilesToUpdate),
|
||||
formattedSize(updateInfo.m_totalUpdateSizeInBytes)];
|
||||
self.showAllMapsView = YES;
|
||||
}
|
||||
|
||||
#pragma mark - UISearchBarDelegate
|
||||
|
||||
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
|
||||
|
|
|
@ -1902,46 +1902,53 @@
|
|||
<constraint firstAttribute="height" constant="1" id="6LI-Em-15P"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="5 Outdated Maps (108 MB)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="464" translatesAutoresizingMaskIntoConstraints="NO" id="VGz-7h-6K5">
|
||||
<rect key="frame" x="16" y="14" width="444" height="17"/>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="14"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.54000000000000004" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="GN0-2F-Ytz" customClass="MWMButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="44"/>
|
||||
<color key="backgroundColor" name="alternateSelectedControlColor" catalog="System" colorSpace="catalog"/>
|
||||
<state key="normal" title="Update All">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular14"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackSecondaryText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="GN0-2F-Ytz">
|
||||
<rect key="frame" x="460" y="0.0" width="140" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="140" id="ker-jb-D1t"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
|
||||
<state key="normal" title="Update All"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="linkBlue"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="medium17"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="downloader_update_all_button"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="linkBlue"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundHighlightedColorName" value="linkBlueHighlighted"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="coloringName" value="MWMWhite"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="white"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="allMapsAction" destination="h4a-ne-bSJ" eventType="touchUpInside" id="swH-BL-Egj"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bQM-6x-WHa" customClass="MWMButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="44"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<state key="normal" title="Update All">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="red"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="allMapsCancelAction" destination="h4a-ne-bSJ" eventType="touchUpInside" id="UOO-Sn-8Cf"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="bottom" secondItem="GN0-2F-Ytz" secondAttribute="bottom" id="1d7-Jm-x6G"/>
|
||||
<constraint firstAttribute="trailing" secondItem="GN0-2F-Ytz" secondAttribute="trailing" id="Fla-om-Cu2"/>
|
||||
<constraint firstAttribute="bottom" secondItem="bQM-6x-WHa" secondAttribute="bottom" id="GhH-Ej-y9d"/>
|
||||
<constraint firstItem="GN0-2F-Ytz" firstAttribute="top" secondItem="st5-ZJ-F0A" secondAttribute="top" id="JFl-uF-Jcg"/>
|
||||
<constraint firstItem="GN0-2F-Ytz" firstAttribute="leading" secondItem="VGz-7h-6K5" secondAttribute="trailing" id="MKo-d0-s9t"/>
|
||||
<constraint firstItem="VGz-7h-6K5" firstAttribute="leading" secondItem="st5-ZJ-F0A" secondAttribute="leading" constant="16" id="NSY-0Y-fsn"/>
|
||||
<constraint firstItem="0aj-pt-FjD" firstAttribute="leading" secondItem="st5-ZJ-F0A" secondAttribute="leading" id="T1h-9e-CHh"/>
|
||||
<constraint firstItem="GN0-2F-Ytz" firstAttribute="centerY" secondItem="st5-ZJ-F0A" secondAttribute="centerY" id="TYj-uT-caw"/>
|
||||
<constraint firstAttribute="trailing" secondItem="0aj-pt-FjD" secondAttribute="trailing" id="X27-uq-GY8"/>
|
||||
<constraint firstItem="bQM-6x-WHa" firstAttribute="leading" secondItem="st5-ZJ-F0A" secondAttribute="leading" id="YLa-6K-Khm"/>
|
||||
<constraint firstItem="0aj-pt-FjD" firstAttribute="top" secondItem="st5-ZJ-F0A" secondAttribute="top" id="k6u-bm-1dm"/>
|
||||
<constraint firstItem="bQM-6x-WHa" firstAttribute="top" secondItem="st5-ZJ-F0A" secondAttribute="top" id="lgd-lj-2Qq"/>
|
||||
<constraint firstItem="GN0-2F-Ytz" firstAttribute="leading" secondItem="st5-ZJ-F0A" secondAttribute="leading" id="nUN-rN-AXo"/>
|
||||
<constraint firstAttribute="trailing" secondItem="bQM-6x-WHa" secondAttribute="trailing" id="pIt-FK-n43"/>
|
||||
<constraint firstAttribute="height" constant="44" id="r0c-5a-Stj"/>
|
||||
<constraint firstItem="VGz-7h-6K5" firstAttribute="centerY" secondItem="st5-ZJ-F0A" secondAttribute="centerY" id="r2v-H3-L2q"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="white"/>
|
||||
|
@ -2020,7 +2027,8 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="allMapsLabel" destination="VGz-7h-6K5" id="eoI-x5-VSc"/>
|
||||
<outlet property="allMapsButton" destination="GN0-2F-Ytz" id="Oi0-99-SSP"/>
|
||||
<outlet property="allMapsCancelButton" destination="bQM-6x-WHa" id="GhS-AQ-EZd"/>
|
||||
<outlet property="allMapsView" destination="st5-ZJ-F0A" id="KAY-Rx-kCC"/>
|
||||
<outlet property="allMapsViewBottomOffset" destination="wj3-ZU-xMA" id="jfn-W1-TEn"/>
|
||||
<outlet property="noMapsContainer" destination="kXO-Oh-2vO" id="fpe-Gj-ZmD"/>
|
||||
|
@ -2072,45 +2080,53 @@
|
|||
<constraint firstAttribute="height" constant="1" id="77N-Bp-ThF"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="14 Maps (291 MB)" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="464" translatesAutoresizingMaskIntoConstraints="NO" id="ks9-BF-szs">
|
||||
<rect key="frame" x="16" y="14" width="444" height="17"/>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="14"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.54000000000000004" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xL5-0u-TaG" customClass="MWMButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="44"/>
|
||||
<color key="backgroundColor" name="alternateSelectedControlColor" catalog="System" colorSpace="catalog"/>
|
||||
<state key="normal" title="Download All">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular14"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackSecondaryText"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xL5-0u-TaG">
|
||||
<rect key="frame" x="460" y="0.0" width="140" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="140" id="Fbl-8r-jNo"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
|
||||
<state key="normal" title="Download All"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="linkBlue"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="medium17"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="linkBlue"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundHighlightedColorName" value="linkBlueHighlighted"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="coloringName" value="MWMWhite"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="white"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="allMapsAction" destination="ccD-FK-8j5" eventType="touchUpInside" id="EtQ-2G-MEd"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="MmB-HW-cD5" customClass="MWMButton">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="44"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<state key="normal" title="Download All">
|
||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="red"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="allMapsCancelAction" destination="ccD-FK-8j5" eventType="touchUpInside" id="Wob-NQ-ZJX"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="C2D-Ac-wjh" firstAttribute="leading" secondItem="9vd-CW-37q" secondAttribute="leading" id="00a-wh-BaK"/>
|
||||
<constraint firstItem="xL5-0u-TaG" firstAttribute="top" secondItem="9vd-CW-37q" secondAttribute="top" id="6ui-Df-HR9"/>
|
||||
<constraint firstItem="xL5-0u-TaG" firstAttribute="centerY" secondItem="9vd-CW-37q" secondAttribute="centerY" id="8ea-Gk-AzX"/>
|
||||
<constraint firstItem="ks9-BF-szs" firstAttribute="leading" secondItem="9vd-CW-37q" secondAttribute="leading" constant="16" id="AhA-nC-yx9"/>
|
||||
<constraint firstItem="MmB-HW-cD5" firstAttribute="leading" secondItem="9vd-CW-37q" secondAttribute="leading" id="Dh1-Fr-eWw"/>
|
||||
<constraint firstAttribute="height" constant="44" id="Dow-HV-Frg"/>
|
||||
<constraint firstItem="ks9-BF-szs" firstAttribute="centerY" secondItem="9vd-CW-37q" secondAttribute="centerY" id="KfJ-Rr-IJu"/>
|
||||
<constraint firstItem="xL5-0u-TaG" firstAttribute="leading" secondItem="ks9-BF-szs" secondAttribute="trailing" id="UiT-gI-4fB"/>
|
||||
<constraint firstItem="xL5-0u-TaG" firstAttribute="leading" secondItem="9vd-CW-37q" secondAttribute="leading" id="EdJ-xv-Ddl"/>
|
||||
<constraint firstAttribute="bottom" secondItem="MmB-HW-cD5" secondAttribute="bottom" id="M2K-ym-QIN"/>
|
||||
<constraint firstAttribute="trailing" secondItem="MmB-HW-cD5" secondAttribute="trailing" id="Qpf-le-AUb"/>
|
||||
<constraint firstAttribute="trailing" secondItem="C2D-Ac-wjh" secondAttribute="trailing" id="ZvS-18-Itc"/>
|
||||
<constraint firstItem="C2D-Ac-wjh" firstAttribute="top" secondItem="9vd-CW-37q" secondAttribute="top" id="aCR-gV-D3e"/>
|
||||
<constraint firstAttribute="trailing" secondItem="xL5-0u-TaG" secondAttribute="trailing" id="gm9-AZ-44g"/>
|
||||
<constraint firstAttribute="bottom" secondItem="xL5-0u-TaG" secondAttribute="bottom" id="rd1-SA-czc"/>
|
||||
<constraint firstItem="MmB-HW-cD5" firstAttribute="top" secondItem="9vd-CW-37q" secondAttribute="top" id="xAU-rg-nW4"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="white"/>
|
||||
|
@ -2169,7 +2185,7 @@
|
|||
</view>
|
||||
<connections>
|
||||
<outlet property="allMapsButton" destination="xL5-0u-TaG" id="09K-th-orY"/>
|
||||
<outlet property="allMapsLabel" destination="ks9-BF-szs" id="fWQ-TU-r6w"/>
|
||||
<outlet property="allMapsCancelButton" destination="MmB-HW-cD5" id="wsr-lk-f32"/>
|
||||
<outlet property="allMapsView" destination="9vd-CW-37q" id="XZs-Bj-AmZ"/>
|
||||
<outlet property="allMapsViewBottomOffset" destination="Vzi-ku-bUf" id="jSf-BP-6Ii"/>
|
||||
<outlet property="tableView" destination="bgs-Kf-cQA" id="Nri-qd-wNS"/>
|
||||
|
|
Loading…
Add table
Reference in a new issue