Skip to content

Commit 46a0d73

Browse files
author
Momo Ozawa
committed
Fix: segmented control logic
The segmented control should be hidden if the blog is NOT a WP.com/Atomic/Jetpack site, or if the device is an iPad. Also, when switching blogs from a WP.com/Atomic/Jetpack site to a self-hosted site (without Jetpack) and if the dashboard is showing, we need to toggle the segmented control to display the site menu.
1 parent 8f5073e commit 46a0d73

1 file changed

Lines changed: 13 additions & 4 deletions

File tree

WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost {
7777

7878
addSitePickerIfNeeded(for: newBlog)
7979
showBlogDetails(for: newBlog)
80-
setupSegmentedControl(for: newBlog)
80+
updateSegmentedControl(for: newBlog)
8181
}
8282

8383
get {
@@ -151,12 +151,13 @@ class MySiteViewController: UIViewController, NoResultsViewHost {
151151
NotificationCenter.default.addObserver(self, selector: #selector(showAddSelfHostedSite), name: .addSelfHosted, object: nil)
152152
}
153153

154-
private func setupSegmentedControl(for blog: Blog) {
154+
private func updateSegmentedControl(for blog: Blog) {
155155
guard FeatureFlag.mySiteDashboard.enabled else {
156156
return
157157
}
158-
segmentedControlContainerView.isHidden = !blog.isHostedAtWPcom || UIDevice.isPad()
159158

159+
// The segmented control should be hidden if the blog is not a WP.com/Atomic/Jetpack site, or if the device is an iPad
160+
segmentedControlContainerView.isHidden = !blog.isAccessibleThroughWPCom() || UIDevice.isPad()
160161
}
161162

162163
private func setupView() {
@@ -279,7 +280,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost {
279280

280281
addSitePickerIfNeeded(for: mainBlog)
281282
showBlogDetails(for: mainBlog)
282-
setupSegmentedControl(for: mainBlog)
283+
updateSegmentedControl(for: mainBlog)
283284
}
284285

285286
@objc
@@ -556,6 +557,14 @@ class MySiteViewController: UIViewController, NoResultsViewHost {
556557
let sitePickerViewController = SitePickerViewController(blog: blog, meScenePresenter: meScenePresenter)
557558

558559
sitePickerViewController.onBlogSwitched = { [weak self] blog in
560+
561+
let isShowingDashboard = self?.segmentedControl.selectedSegmentIndex == Section.dashboard.rawValue
562+
if !blog.isAccessibleThroughWPCom() && isShowingDashboard {
563+
self?.segmentedControl.selectedSegmentIndex = Section.siteMenu.rawValue
564+
self?.segmentedControl.sendActions(for: .valueChanged)
565+
}
566+
567+
self?.updateSegmentedControl(for: blog)
559568
self?.updateChildViewController(for: blog)
560569
}
561570

0 commit comments

Comments
 (0)