Skip to content

Liquid glass + button#4191

Merged
marinofaggiana merged 4 commits into
masterfrom
liquig-glass-btn
Jul 21, 2026
Merged

Liquid glass + button#4191
marinofaggiana merged 4 commits into
masterfrom
liquig-glass-btn

Conversation

@mpivchev

@mpivchev mpivchev commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator

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

Before:
image

After:
image

Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 updates menuPlusButton UI state after several awaits. 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 in MainActor.run here 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.

Comment thread iOSClient/Main/NCMainNavigationController.swift
Comment thread iOSClient/Main/NCMainNavigationController.swift

@kra-mo kra-mo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Neat!

@mpivchev
mpivchev disabled auto-merge July 17, 2026 12:34
Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>

# Conflicts:
#	iOSClient/Files/NCFiles.swift
Signed-off-by: Marino Faggiana <marino.faggiana@nextcloud.com>
@marinofaggiana

Copy link
Copy Markdown
Member

please before the review try:

when change the account the [+] appear so :

Screenshot 2026-07-18 alle 07 57 51

@marinofaggiana marinofaggiana left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pls change.

@jancborchardt jancborchardt moved this to 🏗️ At engineering in 🖍 Design team Jul 20, 2026
@jancborchardt jancborchardt added the papercut Annoying recurring UX issue with possibly simple fix. label Jul 20, 2026
Signed-off-by: Milen Pivchev <milen.pivchev@gmail.com>
@mpivchev

Copy link
Copy Markdown
Collaborator Author

This happened because the merge reverted my changes. Fixed now.

@mpivchev

mpivchev commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator Author

we control if the button is enabled in 2 places:

In NCFiles:
menuPlusButton.isEnabled = metadataFolder.isCreatable

and NCContextMenuPlus:

menuPlusButton.isEnabled = isNetworkReachable || !isDirectoryE2EE

This causes the file to reenable even if it should not.

Will fix.

Edit: #4195

@marinofaggiana
marinofaggiana self-requested a review July 21, 2026 05:49
@marinofaggiana
marinofaggiana merged commit 0798a10 into master Jul 21, 2026
5 checks passed
@marinofaggiana
marinofaggiana deleted the liquig-glass-btn branch July 21, 2026 05:51
@github-project-automation github-project-automation Bot moved this from 🏗️ At engineering to 🎉 Done in 🖍 Design team Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

design enhancement papercut Annoying recurring UX issue with possibly simple fix.

Projects

Status: 🎉 Done

Development

Successfully merging this pull request may close these issues.

5 participants