Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Grechuhin <i.grechuhin@mapswithme.com>2015-06-05 15:33:39 +0300
committerAlex Zolotarev <alex@maps.me>2015-09-23 02:50:00 +0300
commit1c41a86b08788af4238ec8bbda2acac6fdff3cc6 (patch)
treed7dc50652d0e72aaa699d1375f9727f7ec93abfe /iphone/Maps/Classes/MapsAppDelegate.mm
parentcdfe5bd2b230ffdd501820c5842d2a53b8610e00 (diff)
[ios] Fixed two alerts shown at the same time.
Diffstat (limited to 'iphone/Maps/Classes/MapsAppDelegate.mm')
-rw-r--r--iphone/Maps/Classes/MapsAppDelegate.mm78
1 files changed, 44 insertions, 34 deletions
diff --git a/iphone/Maps/Classes/MapsAppDelegate.mm b/iphone/Maps/Classes/MapsAppDelegate.mm
index 642d91d6c5..e58b85d6ec 100644
--- a/iphone/Maps/Classes/MapsAppDelegate.mm
+++ b/iphone/Maps/Classes/MapsAppDelegate.mm
@@ -217,8 +217,7 @@ void InitLocalizedStrings()
else
{
[self incrementSessionCount];
- [self shouldShowRateAlert];
- [self shouldShowFacebookAlert];
+ [self showAlertIfRequired];
}
[[NSUserDefaults standardUserDefaults] synchronize];
@@ -572,6 +571,14 @@ void InitLocalizedStrings()
}
}
+- (void)showAlertIfRequired
+{
+ if ([self shouldShowRateAlert])
+ [self performSelector:@selector(showRateAlert) withObject:self afterDelay:30.0];
+ else if ([self shouldShowFacebookAlert])
+ [self performSelector:@selector(showFacebookAlert) withObject:self afterDelay:30.0];
+}
+
#pragma mark - Facebook
- (void)showFacebookAlert
@@ -585,33 +592,36 @@ void InitLocalizedStrings()
[[NSUserDefaults standardUserDefaults] setObject:NSDate.date forKey:kUDLastShareRequstDate];
}
-- (void)shouldShowFacebookAlert
+- (BOOL)shouldShowFacebookAlert
{
NSUInteger const kMaximumSessionCountForShowingShareAlert = 50;
- NSUserDefaults *standartDefaults = [NSUserDefaults standardUserDefaults];
- BOOL alreadyShared = [standartDefaults boolForKey:kUDAlreadySharedKey];
- if (alreadyShared)
- return;
+ NSUserDefaults const * const standartDefaults = [NSUserDefaults standardUserDefaults];
+ if ([standartDefaults boolForKey:kUDAlreadySharedKey])
+ return NO;
- NSUInteger sessionCount = [standartDefaults integerForKey:kUDSessionsCountKey];
+ NSUInteger const sessionCount = [standartDefaults integerForKey:kUDSessionsCountKey];
if (sessionCount > kMaximumSessionCountForShowingShareAlert)
- return;
+ return NO;
- NSDate *lastShareRequestDate = [standartDefaults objectForKey:kUDLastShareRequstDate];
- NSUInteger daysFromLastShareRequest = [self.class daysBetweenNowAndDate:lastShareRequestDate];
+ NSDate * const lastShareRequestDate = [standartDefaults objectForKey:kUDLastShareRequstDate];
+ NSUInteger const daysFromLastShareRequest = [MapsAppDelegate daysBetweenNowAndDate:lastShareRequestDate];
if (lastShareRequestDate != nil && daysFromLastShareRequest == 0)
- return;
+ return NO;
+
+ if (sessionCount == 30 || sessionCount == kMaximumSessionCountForShowingShareAlert)
+ return YES;
- if (!self.userIsNew)
+ if (self.userIsNew)
{
- if (sessionCount == 5 || sessionCount == 30 || sessionCount == kMaximumSessionCountForShowingShareAlert)
- [NSTimer scheduledTimerWithTimeInterval:30. target:self selector:@selector(showFacebookAlert) userInfo:nil repeats:NO];
+ if (sessionCount == 12)
+ return YES;
}
else
{
- if (sessionCount == 10 || sessionCount == 30 || sessionCount == kMaximumSessionCountForShowingShareAlert)
- [NSTimer scheduledTimerWithTimeInterval:30. target:self selector:@selector(showFacebookAlert) userInfo:nil repeats:NO];
+ if (sessionCount == 5)
+ return YES;
}
+ return NO;
}
#pragma mark - Rate
@@ -627,36 +637,36 @@ void InitLocalizedStrings()
[[NSUserDefaults standardUserDefaults] setObject:NSDate.date forKey:kUDLastRateRequestDate];
}
-- (void)shouldShowRateAlert
+- (BOOL)shouldShowRateAlert
{
NSUInteger const kMaximumSessionCountForShowingAlert = 21;
- NSUserDefaults *standartDefaults = [NSUserDefaults standardUserDefaults];
- BOOL alreadyRated = [standartDefaults boolForKey:kUDAlreadyRatedKey];
- if (alreadyRated)
- return;
+ NSUserDefaults const * const standartDefaults = [NSUserDefaults standardUserDefaults];
+ if ([standartDefaults boolForKey:kUDAlreadyRatedKey])
+ return NO;
- NSUInteger sessionCount = [standartDefaults integerForKey:kUDSessionsCountKey];
+ NSUInteger const sessionCount = [standartDefaults integerForKey:kUDSessionsCountKey];
if (sessionCount > kMaximumSessionCountForShowingAlert)
- return;
+ return NO;
- NSDate *lastRateRequestDate = [standartDefaults objectForKey:kUDLastRateRequestDate];
- NSUInteger daysFromLastRateRequest = [self.class daysBetweenNowAndDate:lastRateRequestDate];
+ NSDate * const lastRateRequestDate = [standartDefaults objectForKey:kUDLastRateRequestDate];
+ NSUInteger const daysFromLastRateRequest = [MapsAppDelegate daysBetweenNowAndDate:lastRateRequestDate];
// Do not show more than one alert per day.
if (lastRateRequestDate != nil && daysFromLastRateRequest == 0)
- return;
+ return NO;
- if (!self.userIsNew)
+ if (self.userIsNew)
{
- // User just got updated. Show alert, if it first session or if 90 days spent.
- if (daysFromLastRateRequest >= 90 || daysFromLastRateRequest == 0)
- [NSTimer scheduledTimerWithTimeInterval:30. target:self selector:@selector(showRateAlert) userInfo:nil repeats:NO];
+ // It's new user.
+ if (sessionCount == 3 || sessionCount == 10 || sessionCount == kMaximumSessionCountForShowingAlert)
+ return YES;
}
else
{
- // It's new user.
- if (sessionCount == 3 || sessionCount == 10 || sessionCount == kMaximumSessionCountForShowingAlert)
- [NSTimer scheduledTimerWithTimeInterval:30. target:self selector:@selector(showRateAlert) userInfo:nil repeats:NO];
+ // User just got updated. Show alert, if it first session or if 90 days spent.
+ if (daysFromLastRateRequest >= 90 || daysFromLastRateRequest == 0)
+ return YES;
}
+ return NO;
}
- (BOOL)userIsNew