Liquid glass + button#4191
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the floating “+” menu button styling to use the new prominent liquid glass button style on iOS 26+, while preserving the existing custom round/shadowed appearance on earlier iOS versions.
Changes:
- Switch the iOS 26+ “+” button to
UIButton.Configuration.prominentGlass()and adjust the SF Symbol size. - Centralize plus-button theming into a
UIButton.setPlusButtonColor(_:)helper and update call sites to use it. - Keep the legacy (pre–iOS 26) appearance path with corner radius + shadow, while applying color via the helper.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| iOSClient/Menu/NCContextMenuPlus.swift | Uses the shared helper to apply theming to the context-menu “+” button. |
| iOSClient/Main/NCMainNavigationController.swift | Creates a prominent glass configuration for iOS 26+ and introduces the shared plus-button coloring helper. |
| iOSClient/Files/NCFiles.swift | Updates theme and enabled/disabled state handling to apply color through the shared helper. |
Comments suppressed due to low confidence (1)
iOSClient/Menu/NCContextMenuPlus.swift:441
NCContextMenuPlus.create(session:)is not@MainActor, but this block updatesmenuPlusButtonUI state after severalawaits. Because non-main-actor async functions may resume on a background executor, these UIKit mutations can run off the main thread. Wrapping the UI updates inMainActor.runhere avoids potential data races/crashes under strict concurrency.
menuPlusButton.setPlusButtonColor(NCBrandColor.shared.getElement(account: session.account))
menuPlusButton.alpha = 1
// E2EE Offline disable
menuPlusButton.isEnabled = isNetworkReachable || !isDirectoryE2EE
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com> # Conflicts: # iOSClient/Files/NCFiles.swift
Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
|
This happened because the merge reverted my changes. Fixed now. |
|
we control if the button is enabled in 2 places: In NCFiles: and NCContextMenuPlus:
This causes the file to reenable even if it should not. Will fix. Edit: #4195 |

Follow up from #4171
Convert the regular + button to a prominent liquid glass button for >= iOS 26
Before:

After:
