Lock when backgrounded.
[FIXED] When backgrounding the app and re-showing it, don't reveal the UI when logout is enabled.
This commit is contained in:
parent
d77cde1929
commit
110f7069e1
2
External/Pearl
vendored
2
External/Pearl
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 01f6c675598757a26df6e61c63d476708e1d038b
|
Subproject commit ee96e89bfecf584805fb5f295e2395fbb1e4186d
|
@ -11,7 +11,7 @@
|
|||||||
@interface MPAppDelegate_Shared (Key)
|
@interface MPAppDelegate_Shared (Key)
|
||||||
|
|
||||||
- (BOOL)signInAsUser:(MPUserEntity *)user usingMasterPassword:(NSString *)password;
|
- (BOOL)signInAsUser:(MPUserEntity *)user usingMasterPassword:(NSString *)password;
|
||||||
- (void)signOut;
|
- (void)signOutAnimated:(BOOL)animated;
|
||||||
|
|
||||||
- (void)storeSavedKeyFor:(MPUserEntity *)user;
|
- (void)storeSavedKeyFor:(MPUserEntity *)user;
|
||||||
- (void)forgetSavedKeyFor:(MPUserEntity *)user;
|
- (void)forgetSavedKeyFor:(MPUserEntity *)user;
|
||||||
|
@ -73,14 +73,15 @@ static NSDictionary *keyQuery(MPUserEntity *user) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)signOut {
|
- (void)signOutAnimated:(BOOL)animated {
|
||||||
|
|
||||||
if (self.key)
|
if (self.key)
|
||||||
self.key = nil;
|
self.key = nil;
|
||||||
|
|
||||||
if (self.activeUser) {
|
if (self.activeUser) {
|
||||||
self.activeUser = nil;
|
self.activeUser = nil;
|
||||||
[[NSNotificationCenter defaultCenter] postNotificationName:MPNotificationSignedOut object:self];
|
[[NSNotificationCenter defaultCenter] postNotificationName:MPNotificationSignedOut object:self userInfo:
|
||||||
|
[NSDictionary dictionaryWithObject:PearlBool(animated) forKey:@"animated"]];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -182,7 +182,11 @@
|
|||||||
|
|
||||||
[[NSNotificationCenter defaultCenter] addObserverForName:MPNotificationSignedOut object:nil queue:nil
|
[[NSNotificationCenter defaultCenter] addObserverForName:MPNotificationSignedOut object:nil queue:nil
|
||||||
usingBlock:^(NSNotification *note) {
|
usingBlock:^(NSNotification *note) {
|
||||||
|
if ([[note.userInfo objectForKey:@"animated"] boolValue])
|
||||||
[self.navigationController performSegueWithIdentifier:@"MP_Unlock" sender:nil];
|
[self.navigationController performSegueWithIdentifier:@"MP_Unlock" sender:nil];
|
||||||
|
else
|
||||||
|
[self.navigationController presentViewController:[self.navigationController.storyboard instantiateViewControllerWithIdentifier:@"MPUnlockViewController"]
|
||||||
|
animated:NO completion:nil];
|
||||||
}];
|
}];
|
||||||
[[NSNotificationCenter defaultCenter] addObserverForName:kIASKAppSettingChanged object:nil queue:nil
|
[[NSNotificationCenter defaultCenter] addObserverForName:kIASKAppSettingChanged object:nil queue:nil
|
||||||
usingBlock:^(NSNotification *note) {
|
usingBlock:^(NSNotification *note) {
|
||||||
@ -325,7 +329,7 @@
|
|||||||
[self saveContext];
|
[self saveContext];
|
||||||
|
|
||||||
if (![[MPiOSConfig get].rememberLogin boolValue])
|
if (![[MPiOSConfig get].rememberLogin boolValue])
|
||||||
[self signOut];
|
[self signOutAnimated:NO];
|
||||||
|
|
||||||
[TestFlight passCheckpoint:MPCheckpointDeactivated];
|
[TestFlight passCheckpoint:MPCheckpointDeactivated];
|
||||||
}
|
}
|
||||||
@ -487,7 +491,7 @@
|
|||||||
inf(@"Unsetting master password for: %@.", user.userID);
|
inf(@"Unsetting master password for: %@.", user.userID);
|
||||||
user.keyID = nil;
|
user.keyID = nil;
|
||||||
[self forgetSavedKeyFor:user];
|
[self forgetSavedKeyFor:user];
|
||||||
[self signOut];
|
[self signOutAnimated:YES];
|
||||||
|
|
||||||
[TestFlight passCheckpoint:MPCheckpointChangeMP];
|
[TestFlight passCheckpoint:MPCheckpointChangeMP];
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointChangeMP
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointChangeMP
|
||||||
|
@ -512,7 +512,7 @@
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
inf(@"Action: Sign out");
|
inf(@"Action: Sign out");
|
||||||
[[MPAppDelegate get] signOut];
|
[[MPAppDelegate get] signOutAnimated:YES];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,25 +9,11 @@
|
|||||||
<link rel="shortcut icon" href="img/favicon.png" type="image/x-png" />
|
<link rel="shortcut icon" href="img/favicon.png" type="image/x-png" />
|
||||||
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
|
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
|
||||||
|
|
||||||
<link rel='stylesheet' type='text/css' href='http://fonts.googleapis.com/css?family=Exo:100,400,600,900,100italic,400italic,600italic' />
|
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Exo:100,400,600,900,100italic,400italic,600italic" />
|
||||||
<link rel="stylesheet" type="text/css" href="css/ml-shadows.css" />
|
<link rel="stylesheet" type="text/css" href="css/ml-shadows.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="css/screen.css" />
|
<link rel="stylesheet" type="text/css" href="css/screen.css" />
|
||||||
|
|
||||||
<script src="js/jquery-1.6.1.min.js" type="text/javascript"></script>
|
<!-- Google Analytics -->
|
||||||
<script src="js/functions.js" type="text/javascript"></script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
$(document).ready(function() {
|
|
||||||
$(window).scroll(function() {
|
|
||||||
if ($(window).scrollTop() > 100) {
|
|
||||||
$(".appstore").show();
|
|
||||||
$("header .appstore").hide();
|
|
||||||
} else {
|
|
||||||
$(".appstore").hide();
|
|
||||||
$("header .appstore").show();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var _gaq = _gaq || [];
|
var _gaq = _gaq || [];
|
||||||
_gaq.push(['_setAccount', 'UA-90535-15']);
|
_gaq.push(['_setAccount', 'UA-90535-15']);
|
||||||
@ -78,6 +64,29 @@
|
|||||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(_ue, s);
|
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(_ue, s);
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<!-- jQuery -->
|
||||||
|
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<!-- Nivo Slider -->
|
||||||
|
<link rel="stylesheet" href="nivo-slider.css" type="text/css" media="screen" />
|
||||||
|
<script src="jquery.nivo.slider.pack.js" type="text/javascript"></script>
|
||||||
|
|
||||||
|
<!-- Page JS -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() {
|
||||||
|
$(window).scroll(function() {
|
||||||
|
if ($(window).scrollTop() > 100) {
|
||||||
|
$(".appstore").show();
|
||||||
|
$("header .appstore").hide();
|
||||||
|
} else {
|
||||||
|
$(".appstore").hide();
|
||||||
|
$("header .appstore").show();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body id="frontpage">
|
<body id="frontpage">
|
||||||
<a class="appstore" href="http://itunes.com/apps/MasterPassword"><img src="img/appstore.png" /></a>
|
<a class="appstore" href="http://itunes.com/apps/MasterPassword"><img src="img/appstore.png" /></a>
|
||||||
@ -94,6 +103,23 @@
|
|||||||
<!--a href="http://bit.ly/vNN5Zi" onclick="_gaq.push(['_trackPageview', '/outbound/testflight']);" id="ribbon"></a-->
|
<!--a href="http://bit.ly/vNN5Zi" onclick="_gaq.push(['_trackPageview', '/outbound/testflight']);" id="ribbon"></a-->
|
||||||
|
|
||||||
<section class="heading">
|
<section class="heading">
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<div class="slider-wrapper">
|
||||||
|
<div id="slider" class="nivoSlider">
|
||||||
|
<img src="images/slide1.jpg" alt="" />
|
||||||
|
<a href="http://dev7studios.com"><img src="images/slide2.jpg" alt="" title="#htmlcaption" /></a>
|
||||||
|
<img src="images/slide3.jpg" alt="" title="This is an example of a caption" />
|
||||||
|
<img src="images/slide4.jpg" alt="" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="htmlcaption" class="nivo-html-caption">
|
||||||
|
<strong>This</strong> is an example of a <em>HTML</em> caption with <a href="#">a link</a>.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
<!--section class="heading">
|
||||||
<div>
|
<div>
|
||||||
<div class="sidebox">
|
<div class="sidebox">
|
||||||
<div class="clip">
|
<div class="clip">
|
||||||
@ -117,7 +143,7 @@
|
|||||||
|
|
||||||
<p>Master Password just recreates the passwords for your sites whenever you need them: instantly and on-demand. At the same time it makes sure that your accounts are adequately protected with <em>secure and unique</em> passwords.</p>
|
<p>Master Password just recreates the passwords for your sites whenever you need them: instantly and on-demand. At the same time it makes sure that your accounts are adequately protected with <em>secure and unique</em> passwords.</p>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section-->
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<p>Master Password is <b>different</b> from other vault-like password solutions. It helps you set <b>secure passwords</b> for your sites, and at the same time makes <b>losing your passwords almost impossible</b>.</p>
|
<p>Master Password is <b>different</b> from other vault-like password solutions. It helps you set <b>secure passwords</b> for your sites, and at the same time makes <b>losing your passwords almost impossible</b>.</p>
|
||||||
|
Loading…
Reference in New Issue
Block a user