From c3e32dd830c996698cecf8052cae029133eb31e9 Mon Sep 17 00:00:00 2001 From: Tony Li Date: Wed, 2 Oct 2024 22:45:27 +1300 Subject: [PATCH] Re-fetch site info after Jetpack login --- .../ViewRelated/Stats/StatsViewController.m | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Stats/StatsViewController.m b/WordPress/Classes/ViewRelated/Stats/StatsViewController.m index ca9de6de09a5..52f547b8cbae 100644 --- a/WordPress/Classes/ViewRelated/Stats/StatsViewController.m +++ b/WordPress/Classes/ViewRelated/Stats/StatsViewController.m @@ -111,21 +111,24 @@ - (void)initStats return; } - [self refreshStatus]; + __weak __typeof(self) weakSelf = self; + [self refreshStatusWithCompletion:^{ + [weakSelf promptForJetpackCredentials]; + }]; } -- (void)refreshStatus +- (void)refreshStatusWithCompletion:(void (^)(void))completion { [self.loadingIndicator startAnimating]; BlogService *blogService = [[BlogService alloc] initWithCoreDataStack:[ContextManager sharedInstance]]; __weak __typeof(self) weakSelf = self; [blogService syncBlog:self.blog success:^{ - [self.loadingIndicator stopAnimating]; - [weakSelf promptForJetpackCredentials]; + [weakSelf.loadingIndicator stopAnimating]; + completion(); } failure:^(NSError * _Nonnull error) { DDLogError(@"Error refreshing blog status when loading stats: %@", error); - [self.loadingIndicator stopAnimating]; - [weakSelf promptForJetpackCredentials]; + [weakSelf.loadingIndicator stopAnimating]; + completion(); }]; } @@ -137,11 +140,14 @@ - (void)promptForJetpackCredentials self.showingJetpackLogin = YES; JetpackLoginViewController *controller = [[JetpackLoginViewController alloc] initWithBlog:self.blog]; __weak JetpackLoginViewController *safeController = controller; + __weak __typeof(self) weakSelf = self; [controller setCompletionBlock:^(){ - [safeController.view removeFromSuperview]; - [safeController removeFromParentViewController]; - self.showingJetpackLogin = NO; - [self initStats]; + [safeController.view removeFromSuperview]; + [safeController removeFromParentViewController]; + weakSelf.showingJetpackLogin = NO; + [weakSelf refreshStatusWithCompletion:^{ + [weakSelf initStats]; + }]; }]; [self addChildViewController:controller];