Skip to content

Use discoverable .NET casing for newer multi-word Material namespaces#1432

Open
Copilot wants to merge 3 commits into
mainfrom
copilot/fix-namespace-casing-issue
Open

Use discoverable .NET casing for newer multi-word Material namespaces#1432
Copilot wants to merge 3 commits into
mainfrom
copilot/fix-namespace-casing-issue

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Jun 2, 2026

Newer multi-word Material packages generate namespaces with only first-letter casing (e.g. Google.Android.Material.Listitem), which is undiscoverable from the upstream Java package or Material component name.

The binding generator derives namespaces from all-lowercase Java packages (com.google.android.material.listitem) with no word boundaries, so only the first letter was capitalized. Following the existing convention of package-level managedName overrides, the affected namespaces are now corrected:

using Google.Android.Material.ListItem;        // was Listitem
using Google.Android.Material.LoadingIndicator; // was Loadingindicator
using Google.Android.Material.DockedToolbar;    // was Dockedtoolbar
using Google.Android.Material.FloatingToolbar;  // was Floatingtoolbar

Changes

  • material/Transforms/Metadata.xml — Added package-level managedName transforms for listitem, loadingindicator, dockedtoolbar, and floatingtoolbar.
  • material/PublicAPI/PublicAPI.Unshipped.txt — Updated affected (unshipped) API entries to the new namespaces.
  • published-namespaces.txt — Updated to match generated output, preserving StringComparer.Ordinal ordering required by the verify-namespace-file check.
  • config.json — Incremented the Xamarin.Google.Android.Material nuget version by 0.0.0.1 (1.14.01.14.0.1).

Notes

  • These are new/unshipped bindings, so no already-published API is broken.

Co-authored-by: jonathanpeppers <840039+jonathanpeppers@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix casing for Xamarin.Google.Android.Material namespaces Use discoverable .NET casing for newer multi-word Material namespaces Jun 2, 2026
Copilot AI requested a review from jonathanpeppers June 2, 2026 16:28
@jonathanpeppers jonathanpeppers marked this pull request as ready for review June 2, 2026 21:12
Copilot AI review requested due to automatic review settings June 2, 2026 21:12
@jonathanpeppers
Copy link
Copy Markdown
Member

@copilot can you increment the version of the appropriate packages by 0.0.0.1

Copy link
Copy Markdown

Copilot AI left a comment

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 improves the generated .NET namespaces for newer multi-word Material Java packages by adding package-level managedName overrides, making the namespaces discoverable and consistent with expected .NET casing (e.g., ...ListItem instead of ...Listitem).

Changes:

  • Added managedName transforms for listitem, loadingindicator, dockedtoolbar, and floatingtoolbar packages.
  • Updated PublicAPI.Unshipped.txt entries to reflect the corrected namespaces for affected unshipped types.
  • Updated published-namespaces.txt to the new namespace spellings while preserving ordinal sort order.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
source/com.google.android.material/material/Transforms/Metadata.xml Adds package-level managedName overrides to correct multi-word namespace casing.
source/com.google.android.material/material/PublicAPI/PublicAPI.Unshipped.txt Updates unshipped API declarations to the corrected namespaces.
published-namespaces.txt Updates the published namespace list to match the new generated namespaces (kept in ordinal-sorted order).

Co-authored-by: jonathanpeppers <840039+jonathanpeppers@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Jun 2, 2026

@copilot can you increment the version of the appropriate packages by 0.0.0.1

Bumped Xamarin.Google.Android.Material nuget version from 1.14.0 to 1.14.0.1 in config.json (commit 8519164's follow-up).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Xamarin.Google.Android.Material namespace casing for newer multi-word Material packages is hard to discover

3 participants