Fixed a bunch of UI quirks, iOS 6 & 7.
[FIXED] UI Quirks in iOS 6 and iOS 7.
This commit is contained in:
parent
7fd322a5c6
commit
37070e482d
2
External/Pearl
vendored
2
External/Pearl
vendored
@ -1 +1 @@
|
||||
Subproject commit ea7054e328bd7162d1f5a56a0f64a3eed6e3fc66
|
||||
Subproject commit 2ecab2a0d29b60754ec90eaabcb1cde835dbe294
|
@ -17,7 +17,7 @@
|
||||
+ (MPAppDelegate_Shared *)get {
|
||||
|
||||
#if TARGET_OS_IPHONE
|
||||
return (MPAppDelegate_Shared *)[UIApplication sharedApplication].delegate;
|
||||
return (MPAppDelegate_Shared *)UIApp.delegate;
|
||||
#elif defined (__MAC_OS_X_VERSION_MIN_REQUIRED)
|
||||
return (MPAppDelegate_Shared *)[NSApplication sharedApplication].delegate;
|
||||
#else
|
||||
|
@ -103,13 +103,13 @@ PearlAssociatedObjectProperty(NSManagedObjectContext*, MainManagedObjectContext,
|
||||
delegate:self];
|
||||
|
||||
#if TARGET_OS_IPHONE
|
||||
[[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationWillTerminateNotification object:[UIApplication sharedApplication]
|
||||
[[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationWillTerminateNotification object:UIApp
|
||||
queue:[NSOperationQueue mainQueue] usingBlock:
|
||||
^(NSNotification *note) {
|
||||
[[self mainManagedObjectContext] saveToStore];
|
||||
}];
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
addObserverForName:UIApplicationWillResignActiveNotification object:[UIApplication sharedApplication]
|
||||
addObserverForName:UIApplicationWillResignActiveNotification object:UIApp
|
||||
queue:[NSOperationQueue mainQueue] usingBlock:
|
||||
^(NSNotification *note) {
|
||||
[[self mainManagedObjectContext] saveToStore];
|
||||
|
@ -26,7 +26,7 @@
|
||||
@"app" : @"gorillas"
|
||||
} );
|
||||
|
||||
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://itunes.apple.com/app/lyndir/gorillas/id302275459?mt=8"]];
|
||||
[UIApp openURL:[NSURL URLWithString:@"http://itunes.apple.com/app/lyndir/gorillas/id302275459?mt=8"]];
|
||||
}
|
||||
|
||||
- (IBAction)deblock:(UIButton *)sender {
|
||||
@ -35,7 +35,7 @@
|
||||
@"app" : @"deblock"
|
||||
} );
|
||||
|
||||
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://itunes.apple.com/app/lyndir/deblock/id325058485?mt=8"]];
|
||||
[UIApp openURL:[NSURL URLWithString:@"http://itunes.apple.com/app/lyndir/deblock/id325058485?mt=8"]];
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -61,7 +61,7 @@
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
|
||||
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
|
||||
[UIApp setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
|
||||
MPCheckpoint( MPCheckpointApps, nil );
|
||||
|
||||
[self.pageViewController setViewControllers:@[ [self.pageVCs objectAtIndex:1] ] direction:UIPageViewControllerNavigationDirectionForward
|
||||
@ -84,7 +84,7 @@
|
||||
|
||||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
|
||||
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];
|
||||
[UIApp setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];
|
||||
|
||||
[super viewWillDisappear:animated];
|
||||
}
|
||||
|
@ -24,6 +24,16 @@
|
||||
|
||||
@implementation MPElementListAllViewController
|
||||
|
||||
- (BOOL)prefersStatusBarHidden {
|
||||
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (UIStatusBarStyle)preferredStatusBarStyle {
|
||||
|
||||
return UIStatusBarStyleLightContent;
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
|
||||
[super viewWillAppear:animated];
|
||||
|
@ -25,6 +25,7 @@
|
||||
@property(weak, nonatomic) IBOutlet UITextField *contentText;
|
||||
@property(weak, nonatomic) IBOutlet UIButton *largePlayButton;
|
||||
@property(weak, nonatomic) IBOutlet UIButton *smallPlayButton;
|
||||
@property(weak, nonatomic) IBOutlet UIView *alertTip;
|
||||
|
||||
- (IBAction)play;
|
||||
- (IBAction)close;
|
||||
|
@ -24,16 +24,21 @@
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
|
||||
|
||||
return UIInterfaceOrientationPortrait;
|
||||
}
|
||||
|
||||
- (BOOL)prefersStatusBarHidden {
|
||||
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (UIStatusBarStyle)preferredStatusBarStyle {
|
||||
|
||||
return UIStatusBarStyleLightContent;
|
||||
}
|
||||
|
||||
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
|
||||
|
||||
return UIInterfaceOrientationPortrait;
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
|
||||
[super viewDidLoad];
|
||||
@ -43,6 +48,7 @@
|
||||
self.usernameTip.hidden = NO;
|
||||
self.typeTip.hidden = NO;
|
||||
self.toolTip.hidden = NO;
|
||||
self.alertTip.hidden = NO;
|
||||
|
||||
self.tickCount = 30;
|
||||
}
|
||||
@ -50,27 +56,44 @@
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
|
||||
[self.navigationController setNavigationBarHidden:YES animated:animated];
|
||||
if (![super respondsToSelector:@selector(prefersStatusBarHidden)])
|
||||
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];
|
||||
|
||||
inf(@"Guide will appear.");
|
||||
[super viewWillAppear:animated];
|
||||
|
||||
if (self.navigationController) {
|
||||
// Via setup
|
||||
[self.navigationController setNavigationBarHidden:YES animated:animated];
|
||||
self.smallPlayButton.hidden = YES;
|
||||
|
||||
self.siteNameTip.alpha = 0;
|
||||
self.content.alpha = 0;
|
||||
self.content.frame = CGRectSetHeight( self.content.frame, 180 );
|
||||
self.contentTip.alpha = 0;
|
||||
self.contentButton.highlighted = NO;
|
||||
self.usernameTip.alpha = 0;
|
||||
self.usernameButton.highlighted = NO;
|
||||
self.typeTip.alpha = 0;
|
||||
self.typeButton.highlighted = NO;
|
||||
self.toolTip.alpha = 0;
|
||||
self.toolButton.highlighted = NO;
|
||||
self.alertTip.alpha = 0;
|
||||
}
|
||||
else {
|
||||
// Via segue
|
||||
self.largePlayButton.hidden = YES;
|
||||
|
||||
self.siteNameTip.alpha = 1;
|
||||
self.content.alpha = 1;
|
||||
self.content.frame = CGRectSetHeight( self.content.frame, 231 );
|
||||
self.contentTip.alpha = 1;
|
||||
self.contentTipText.text = @"Tap to copy";
|
||||
self.contentButton.highlighted = NO;
|
||||
self.usernameTip.alpha = 1;
|
||||
self.usernameButton.highlighted = NO;
|
||||
self.typeTip.alpha = 1;
|
||||
self.typeButton.highlighted = NO;
|
||||
self.toolTip.alpha = 0;
|
||||
self.toolButton.highlighted = NO;
|
||||
self.alertTip.alpha = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -86,7 +109,6 @@
|
||||
- (void)viewWillDisappear:(BOOL)animated {
|
||||
|
||||
inf(@"Guide will disappear.");
|
||||
[self.navigationController setNavigationBarHidden:NO animated:animated];
|
||||
[super viewWillDisappear:animated];
|
||||
}
|
||||
|
||||
@ -132,6 +154,7 @@
|
||||
self.usernameTip.alpha = 0;
|
||||
self.typeTip.alpha = 0;
|
||||
self.toolTip.alpha = 0;
|
||||
self.alertTip.alpha = 0;
|
||||
}];
|
||||
}
|
||||
else if (self.currentTick < 10) {
|
||||
@ -139,9 +162,11 @@
|
||||
self.siteNameTip.alpha = 0;
|
||||
self.content.alpha = 1;
|
||||
self.contentTip.alpha = 1;
|
||||
self.contentTipText.text = @"Your password";
|
||||
self.usernameTip.alpha = 0;
|
||||
self.typeTip.alpha = 0;
|
||||
self.toolTip.alpha = 0;
|
||||
self.alertTip.alpha = 0;
|
||||
}];
|
||||
}
|
||||
else if (self.currentTick < 15) {
|
||||
@ -149,12 +174,13 @@
|
||||
self.siteNameTip.alpha = 0;
|
||||
self.content.alpha = 1;
|
||||
self.contentTip.alpha = 1;
|
||||
self.contentButton.highlighted = YES;
|
||||
self.contentTipText.text = @"Tap to copy";
|
||||
self.contentButton.highlighted = YES;
|
||||
self.usernameTip.alpha = 0;
|
||||
self.typeTip.alpha = 0;
|
||||
self.toolButton.highlighted = NO;
|
||||
self.toolTip.alpha = 0;
|
||||
self.alertTip.alpha = 0;
|
||||
}];
|
||||
}
|
||||
else if (self.currentTick < 20) {
|
||||
@ -164,11 +190,11 @@
|
||||
self.content.frame = CGRectSetHeight( self.content.frame, 231 );
|
||||
self.contentTip.alpha = 0;
|
||||
self.contentButton.highlighted = NO;
|
||||
self.contentTipText.text = @"Use this password";
|
||||
self.usernameButton.highlighted = YES;
|
||||
self.usernameTip.alpha = 1;
|
||||
self.typeTip.alpha = 0;
|
||||
self.toolTip.alpha = 0;
|
||||
self.alertTip.alpha = 0;
|
||||
}];
|
||||
}
|
||||
else if (self.currentTick < 25) {
|
||||
@ -181,6 +207,7 @@
|
||||
self.typeTip.alpha = 1;
|
||||
self.typeButton.highlighted = YES;
|
||||
self.toolTip.alpha = 0;
|
||||
self.alertTip.alpha = 0;
|
||||
}];
|
||||
}
|
||||
else if (self.currentTick < 30) {
|
||||
@ -193,6 +220,7 @@
|
||||
self.typeButton.highlighted = NO;
|
||||
self.toolButton.highlighted = YES;
|
||||
self.toolTip.alpha = 1;
|
||||
self.alertTip.alpha = 0;
|
||||
self.contentText.text = @"XupuMajf4'Hafh";
|
||||
}];
|
||||
}
|
||||
@ -209,6 +237,7 @@
|
||||
self.typeTip.alpha = 1;
|
||||
self.toolButton.highlighted = NO;
|
||||
self.toolTip.alpha = 0;
|
||||
self.alertTip.alpha = 1;
|
||||
}];
|
||||
}
|
||||
}
|
||||
|
@ -122,9 +122,9 @@
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
|
||||
[self.navigationController setNavigationBarHidden:NO animated:animated];
|
||||
if (![super respondsToSelector:@selector(prefersStatusBarHidden)])
|
||||
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];
|
||||
[UIApp setStatusBarHidden:NO withAnimation:animated? UIStatusBarAnimationSlide: UIStatusBarAnimationNone];
|
||||
[self.navigationController setNavigationBarHidden:NO animated:animated];
|
||||
|
||||
MPElementEntity *activeElement = [self activeElementForMainThread];
|
||||
if (activeElement.user != [[MPiOSAppDelegate get] activeUserForMainThread])
|
||||
@ -149,11 +149,6 @@
|
||||
|
||||
inf(@"Main will appear");
|
||||
|
||||
// Sometimes, the search bar gets stuck in some sort of first-responder mode that it can't get out of...
|
||||
[[self.view.window findFirstResponderInHierarchy] resignFirstResponder];
|
||||
|
||||
// Needed for when we appear after a modal VC dismisses:
|
||||
// We can't present until the other modal VC has been fully dismissed and presenting in -viewWillAppear: will fail.
|
||||
[MPiOSAppDelegate managedObjectContextPerformBlock:^(NSManagedObjectContext *moc) {
|
||||
MPUserEntity *activeUser = [[MPiOSAppDelegate get] activeUserInContext:moc];
|
||||
if ([MPAlgorithmDefault migrateUser:activeUser inContext:moc] && !self.suppressOutdatedAlert)
|
||||
@ -908,7 +903,7 @@
|
||||
return NO;
|
||||
}
|
||||
|
||||
[[UIApplication sharedApplication] openURL:[request URL]];
|
||||
[UIApp openURL:[request URL]];
|
||||
return NO;
|
||||
}
|
||||
|
||||
|
@ -207,9 +207,9 @@
|
||||
- (void)viewWillAppear:(BOOL)animated {
|
||||
|
||||
inf(@"Lock screen will appear");
|
||||
[self.navigationController setNavigationBarHidden:YES animated:animated];
|
||||
if (![super respondsToSelector:@selector(prefersStatusBarHidden)])
|
||||
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
|
||||
[UIApp setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
|
||||
[self.navigationController setNavigationBarHidden:YES animated:animated];
|
||||
|
||||
[[MPiOSAppDelegate get] signOutAnimated:NO];
|
||||
|
||||
@ -1031,7 +1031,7 @@
|
||||
navigationType:(UIWebViewNavigationType)navigationType {
|
||||
|
||||
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
|
||||
[[UIApplication sharedApplication] openURL:[request URL]];
|
||||
[UIApp openURL:[request URL]];
|
||||
return NO;
|
||||
}
|
||||
|
||||
@ -1130,17 +1130,17 @@
|
||||
|
||||
if (buttonIndex == [sheet firstOtherButtonIndex]) {
|
||||
// Google+
|
||||
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://plus.google.com/116256327773442623984/about"]];
|
||||
[UIApp openURL:[NSURL URLWithString:@"https://plus.google.com/116256327773442623984/about"]];
|
||||
return;
|
||||
}
|
||||
if (buttonIndex == [sheet firstOtherButtonIndex] + 1) {
|
||||
// Facebook
|
||||
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://www.facebook.com/masterpasswordapp"]];
|
||||
[UIApp openURL:[NSURL URLWithString:@"https://www.facebook.com/masterpasswordapp"]];
|
||||
return;
|
||||
}
|
||||
if (buttonIndex == [sheet firstOtherButtonIndex] + 2) {
|
||||
// Twitter
|
||||
UIApplication *application = [UIApplication sharedApplication];
|
||||
UIApplication *application = UIApp;
|
||||
for (NSString *candidate in @[
|
||||
@"twitter://user?screen_name=%@", // Twitter
|
||||
@"tweetbot:///user_profile/%@", // TweetBot
|
||||
@ -1172,7 +1172,7 @@
|
||||
}
|
||||
if (buttonIndex == [sheet firstOtherButtonIndex] + 4) {
|
||||
// GitHub
|
||||
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://github.com/Lyndir/MasterPassword"]];
|
||||
[UIApp openURL:[NSURL URLWithString:@"https://github.com/Lyndir/MasterPassword"]];
|
||||
return;
|
||||
}
|
||||
} cancelTitle:[PearlStrings get].commonButtonCancel
|
||||
|
@ -1855,8 +1855,12 @@ If you set a custom password, it will be encrypted before it is saved to the clo
|
||||
<tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="48" sectionHeaderHeight="22" sectionFooterHeight="22" id="N83-sj-4tl">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<navigationBar key="tableHeaderView" contentMode="scaleToFill" barStyle="black" translucent="NO" id="l0p-Tu-L9k">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<view key="tableHeaderView" contentMode="scaleToFill" id="8py-Tx-ShT">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="64"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<navigationBar contentMode="scaleToFill" barStyle="black" translucent="NO" id="l0p-Tu-L9k">
|
||||
<rect key="frame" x="0.0" y="20" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<color key="tintColor" red="0.47450980390000003" green="0.86666666670000003" blue="0.98431372549999996" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="barTintColor" red="0.12549020350000001" green="0.1411764771" blue="0.14901961389999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
@ -1878,6 +1882,9 @@ If you set a custom password, it will be encrypted before it is saved to the clo
|
||||
</navigationItem>
|
||||
</items>
|
||||
</navigationBar>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="idA-Pj-1U9" id="yPh-6k-Ba9"/>
|
||||
<outlet property="delegate" destination="idA-Pj-1U9" id="bdk-Iu-Hpv"/>
|
||||
@ -2515,12 +2522,16 @@ You can make passwords for anything, like email addresses, sites or real-world t
|
||||
<scene sceneID="k6U-hl-fJt">
|
||||
<objects>
|
||||
<viewController id="myN-X7-9Tg" customClass="MPGuideViewController" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="vkG-Oi-PHo">
|
||||
<view key="view" contentMode="scaleToFill" id="qvX-TO-FS2">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" id="vkG-Oi-PHo">
|
||||
<rect key="frame" x="0.0" y="20" width="320" height="548"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="center" image="background.png" id="C2i-R4-36i">
|
||||
<rect key="frame" x="0.0" y="44" width="320" height="524"/>
|
||||
<rect key="frame" x="0.0" y="44" width="320" height="504"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</imageView>
|
||||
<view clipsSubviews="YES" contentMode="scaleToFill" id="vSk-nT-Vwf" userLabel="View - Display">
|
||||
@ -2649,10 +2660,17 @@ You can make passwords for anything, like email addresses, sites or real-world t
|
||||
<color key="textColor" red="0.37254901959999998" green="0.3921568627" blue="0.42745098040000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</textAttributes>
|
||||
<items>
|
||||
<navigationItem title="Master Password" id="Kbd-LM-sCQ"/>
|
||||
<navigationItem title="Overview" id="Kbd-LM-sCQ"/>
|
||||
</items>
|
||||
</navigationBar>
|
||||
<searchBar contentMode="redraw" barStyle="black" placeholder="Site name" showsBookmarkButton="YES" translucent="NO" id="IJX-hq-SkG">
|
||||
<toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translucent="NO" id="k9i-YD-Q2Q">
|
||||
<rect key="frame" x="0.0" y="44" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="0.12549020350000001" green="0.1411764771" blue="0.14901961389999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<items/>
|
||||
<color key="barTintColor" red="0.12549020350000001" green="0.1411764771" blue="0.14901961389999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</toolbar>
|
||||
<searchBar contentMode="redraw" searchBarStyle="minimal" placeholder="Site name" showsBookmarkButton="YES" id="IJX-hq-SkG">
|
||||
<rect key="frame" x="0.0" y="44" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<gestureRecognizers/>
|
||||
@ -2660,7 +2678,7 @@ You can make passwords for anything, like email addresses, sites or real-world t
|
||||
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="URL"/>
|
||||
</searchBar>
|
||||
<view contentMode="scaleToFill" id="Ahl-o0-lMv">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="548"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="3wI-lo-tWc">
|
||||
@ -2680,7 +2698,7 @@ You can make passwords for anything, like email addresses, sites or real-world t
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="UHf-cp-97W">
|
||||
<rect key="frame" x="33" y="522" width="44" height="44"/>
|
||||
<rect key="frame" x="33" y="502" width="44" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" hint="" label="Close"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
@ -2696,7 +2714,7 @@ You can make passwords for anything, like email addresses, sites or real-world t
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="jDS-Vh-ETL">
|
||||
<rect key="frame" x="124" y="244" width="72" height="80"/>
|
||||
<rect key="frame" x="124" y="234" width="72" height="80"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<accessibility key="accessibilityConfiguration" hint="" label="Close"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
@ -2712,12 +2730,13 @@ You can make passwords for anything, like email addresses, sites or real-world t
|
||||
</connections>
|
||||
</button>
|
||||
<progressView opaque="NO" contentMode="scaleToFill" id="nf7-oM-7dh">
|
||||
<rect key="frame" x="85" y="539" width="150" height="2"/>
|
||||
<rect key="frame" x="85" y="523" width="150" height="2"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<inset key="insetFor6xAndEarlier" minX="0.0" minY="-3" maxX="0.0" maxY="3"/>
|
||||
<color key="progressTintColor" red="0.37254901959999998" green="0.3921568627" blue="0.42745098040000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</progressView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="0.12156862745098039" green="0.12941176470588237" blue="0.14117647058823529" alpha="0.5" colorSpace="calibratedRGB"/>
|
||||
<color key="backgroundColor" red="0.37254901959999998" green="0.3921568627" blue="0.42745098040000001" alpha="0.0" colorSpace="calibratedRGB"/>
|
||||
</view>
|
||||
<view hidden="YES" userInteractionEnabled="NO" alpha="0.0" contentMode="scaleToFill" id="nDU-uf-V0X" userLabel="View - Tool Tip">
|
||||
<rect key="frame" x="10" y="59" width="266" height="60"/>
|
||||
@ -2739,16 +2758,16 @@ You can make passwords for anything, like email addresses, sites or real-world t
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view hidden="YES" userInteractionEnabled="NO" alpha="0.0" contentMode="scaleToFill" id="cUZ-lb-h7x" userLabel="View - Site Name Tip">
|
||||
<rect key="frame" x="10" y="55" width="300" height="60"/>
|
||||
<rect key="frame" x="10" y="59" width="300" height="56"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="tip_basic_black_top.png" id="NgB-q4-k0y">
|
||||
<rect key="frame" x="0.0" y="0.0" width="300" height="60"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="300" height="56"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<rect key="contentStretch" x="0.15000000000000002" y="0.15000000000000002" width="0.69999999999999973" height="0.69999999999999973"/>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Name for your password" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" id="lgI-5O-kXT">
|
||||
<rect key="frame" x="-20" y="26" width="340" height="21"/>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Name your site (eg. gmail.com)" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" id="lgI-5O-kXT">
|
||||
<rect key="frame" x="-20" y="26" width="340" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||
@ -2765,7 +2784,7 @@ You can make passwords for anything, like email addresses, sites or real-world t
|
||||
<rect key="frame" x="0.0" y="0.0" width="210" height="60"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Use this password" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" id="nGi-CK-Dng">
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Your password" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" id="nGi-CK-Dng">
|
||||
<rect key="frame" x="19" y="9" width="171" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
@ -2812,12 +2831,47 @@ You can make passwords for anything, like email addresses, sites or real-world t
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<view hidden="YES" userInteractionEnabled="NO" alpha="0.0" contentMode="scaleToFill" id="RSW-m2-zQ4" userLabel="View - Alert">
|
||||
<rect key="frame" x="10" y="337" width="300" height="180"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="tip_alert_black.png" id="EbN-iH-aJ0">
|
||||
<rect key="frame" x="0.0" y="0.0" width="300" height="180"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<rect key="contentStretch" x="0.25" y="0.6499999999999998" width="0.64999999999999969" height="0.10000000000000002"/>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Important Tips:" lineBreakMode="tailTruncation" minimumFontSize="10" id="pnh-jB-A00">
|
||||
<rect key="frame" x="70" y="20" width="210" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" editable="NO" id="zrE-Ux-kph">
|
||||
<rect key="frame" x="20" y="60" width="260" height="100"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<string key="text"> • Use the short site name (eg. apple.com), don't include the prefix (eg. www).
|
||||
• Use generated passwords. If you ever lose your user or phone, recreating the user will resurrect them from thin air.</string>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="12"/>
|
||||
<textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
|
||||
</textView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" red="0.14901960780000001" green="0.1647058824" blue="0.18039215689999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<inset key="insetFor6xAndEarlier" minX="0.0" minY="20" maxX="0.0" maxY="0.0"/>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</view>
|
||||
<extendedEdge key="edgesForExtendedLayout"/>
|
||||
<navigationItem key="navigationItem" id="p1Y-gL-psy"/>
|
||||
<nil key="simulatedTopBarMetrics"/>
|
||||
<connections>
|
||||
<outlet property="alertTip" destination="RSW-m2-zQ4" id="s2s-5I-O4A"/>
|
||||
<outlet property="content" destination="vSk-nT-Vwf" id="Kgh-xj-8Z6"/>
|
||||
<outlet property="contentButton" destination="naw-bU-g1E" id="g2B-hC-aHX"/>
|
||||
<outlet property="contentText" destination="G2i-wO-6x6" id="u9H-xp-CR2"/>
|
||||
@ -2945,6 +2999,7 @@ However, it means that anyone who finds your device unlocked can do the same.</s
|
||||
<image name="ui_textfield.png" width="158" height="34"/>
|
||||
<image name="unlocked.png" width="84" height="80"/>
|
||||
</resources>
|
||||
<color key="tintColor" red="0.47450980390000003" green="0.86666666670000003" blue="0.98431372549999996" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
||||
<simulatedStatusBarMetrics key="statusBar"/>
|
||||
<simulatedOrientationMetrics key="orientation"/>
|
||||
|
@ -256,6 +256,7 @@
|
||||
DAD3127215528CD200A3F9ED /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
|
||||
DAD312BF1552A1BD00A3F9ED /* libLocalytics.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAD3127115528CD200A3F9ED /* libLocalytics.a */; };
|
||||
DAD312C21552A22700A3F9ED /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = DAD312C01552A20800A3F9ED /* libsqlite3.dylib */; };
|
||||
DAE1EF2217E942DE00BC0086 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = DAE1EF2417E942DE00BC0086 /* Localizable.strings */; };
|
||||
DAEBC45314F6364500987BF6 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DAEBC45214F6364500987BF6 /* QuartzCore.framework */; };
|
||||
DAFC5656172C573B00CB5CC5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
|
||||
DAFC5683172C57EC00CB5CC5 /* IASKAppSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DAFC5665172C57EC00CB5CC5 /* IASKAppSettingsViewController.m */; };
|
||||
@ -1173,6 +1174,7 @@
|
||||
DACA29BB1705E2DE002C6C22 /* UIColor+HSV.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIColor+HSV.m"; sourceTree = "<group>"; };
|
||||
DAD3127115528CD200A3F9ED /* libLocalytics.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libLocalytics.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
DAD312C01552A20800A3F9ED /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; };
|
||||
DAE1EF2317E942DE00BC0086 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
DAEBC45214F6364500987BF6 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
|
||||
DAFC5655172C573B00CB5CC5 /* libInAppSettingsKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libInAppSettingsKit.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
DAFC5659172C573B00CB5CC5 /* InAppSettingsKit-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "InAppSettingsKit-Prefix.pch"; sourceTree = "<group>"; };
|
||||
@ -2356,6 +2358,7 @@
|
||||
DACA26971705DF81002C6C22 /* Google+ */,
|
||||
DACA26951705DF81002C6C22 /* Localytics */,
|
||||
DACA26931705DF81002C6C22 /* TestFlight */,
|
||||
DAE1EF2417E942DE00BC0086 /* Localizable.strings */,
|
||||
);
|
||||
name = Resources;
|
||||
path = ../../Resources;
|
||||
@ -3200,6 +3203,7 @@
|
||||
DABD3FCB1712446200CF925C /* cloud@2x.png in Resources */,
|
||||
DABD3FCE1714F45C00CF925C /* identity.png in Resources */,
|
||||
DABD3FCF1714F45C00CF925C /* identity@2x.png in Resources */,
|
||||
DAE1EF2217E942DE00BC0086 /* Localizable.strings in Resources */,
|
||||
DA5A09DF171A70E4005284AB /* play.png in Resources */,
|
||||
DA5A09E0171A70E4005284AB /* play@2x.png in Resources */,
|
||||
DA5A09EA171BB0F7005284AB /* unlocked.png in Resources */,
|
||||
@ -3439,6 +3443,14 @@
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
DAE1EF2417E942DE00BC0086 /* Localizable.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
DAE1EF2317E942DE00BC0086 /* en */,
|
||||
);
|
||||
name = Localizable.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
DAFE45FA15039823003ABA7C /* Pearl.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
|
11
MasterPassword/Resources/en.lproj/Localizable.strings
Normal file
11
MasterPassword/Resources/en.lproj/Localizable.strings
Normal file
@ -0,0 +1,11 @@
|
||||
/*
|
||||
MasterPassword.strings
|
||||
MasterPassword-iOS
|
||||
|
||||
Created by Maarten Billemont on 2013-09-17.
|
||||
Copyright (c) 2013 Lyndir. All rights reserved.
|
||||
*/
|
||||
"review.message" =
|
||||
"Has %@ been useful to you?\
|
||||
\
|
||||
It would mean a lot if you could review this version and tell your friends about its benefits.";
|
Loading…
Reference in New Issue
Block a user