diff options
author | Vitaly Takmazov | 2019-03-24 13:05:27 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2019-03-24 13:05:27 +0300 |
commit | 2e132e6bbffac6a50b088fb6414c6bfa2a7743ac (patch) | |
tree | de6dd3a22710b39b616ad7bf0ffbeae58f072417 /Juick/AppDelegate.m | |
parent | 212bdfdcdae73049385ff5134c550701995c9a71 (diff) |
Update badge on discussions tab
Diffstat (limited to 'Juick/AppDelegate.m')
-rw-r--r-- | Juick/AppDelegate.m | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/Juick/AppDelegate.m b/Juick/AppDelegate.m index 802bbab..d33a0fb 100644 --- a/Juick/AppDelegate.m +++ b/Juick/AppDelegate.m @@ -17,6 +17,8 @@ #import "NewPostViewController.h" #import "FeedViewController.h" +NSString * const UserUpdatedNotificationName = @"UserUpdated"; + @interface AppDelegate() -(void) parseNotificationPayload:(NSDictionary *)userInfo; @end @@ -108,7 +110,17 @@ - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { if (userInfo[@"service"]) { - application.applicationIconBadgeNumber = [userInfo[@"user"][@"unreadCount"] integerValue]; + User *user = [User fromJSON:userInfo[@"user"]]; + application.applicationIconBadgeNumber = user.unreadCount; + UITabBarController *main = (UITabBarController *)self.window.rootViewController; + UINavigationController *discussions = [main.viewControllers objectAtIndex:1]; + if (user.unreadCount > 0) { + [discussions tabBarItem].badgeColor = [UIColor colorNamed:@"Funny"]; + [discussions tabBarItem].badgeValue = [NSString stringWithFormat:@"%ld", user.unreadCount]; + } else { + [discussions tabBarItem].badgeValue = @""; + } + [[NSNotificationCenter defaultCenter] postNotificationName:UserUpdatedNotificationName object:user]; [[UNUserNotificationCenter currentNotificationCenter] getDeliveredNotificationsWithCompletionHandler:^(NSArray<UNNotification *> * _Nonnull notifications) { for (UNNotification* notification in notifications) { if ([notification.request.content.userInfo[@"mid"] integerValue] == [userInfo[@"mid"] integerValue]) { |