Skip to content

Conversation

@jonpryor
Copy link
Contributor

@jonpryor jonpryor commented Jan 28, 2020

Context: https://www.blog.google/products/android/evolving-android-brand/

The AndroidApiInfo.xml files produced by xaprepare during build
preparation includes a Name value:

    <AndroidApiInfo>
      <Id>29</Id>
      <Level>29</Level>
      <Name>Q</Name>
      <Version>v10.0</Version>
      <Stable>True</Stable>
    </AndroidApiInfo>

Both the version number and name are shown within various parts of
the IDEs, e.g.

VS Minimum Android Version

    Android 9.0 (Pie)
    Android 8.1 (Oreo)

The problem is that starting with Android 10, Google is no longer
providing "nicknames" for Android releases.

What should Visual Studio do?

Currently, we still emit a Name of "Q" for API-29, thus VS shows:

    Android 10.0 (Q)

We could "clear out" the Name value, but unfortunately VS currently
doesn't special-case this in any way, and thus would show:

    Android 10.0 ()

Which looks "wrong".

Fixing this will require two changes:

  1. We (xamarin-android) will begin clearing out the Name for Android
    releases which lack a nickname, and

  2. The VS team will modify their Target Framework name generation
    logic such that the parenthesis and Name are only used when Name
    is a non-empty value. This will allow API-29 to have a displayed
    name of Android 10.0.

Begin the process: begin emitting an empty Name field for API-29,
allowing the IDE team to begin implementing their side.

Context: https://www.blog.google/products/android/evolving-android-brand/

The `AndroidApiInfo.xml` files produced by `xaprepare` during build
preparation includes a *Name* value:

	<AndroidApiInfo>
	  <Id>29</Id>
	  <Level>29</Level>
	  <Name>Q</Name>
	  <Version>v10.0</Version>
	  <Stable>True</Stable>
	</AndroidApiInfo>

Both the version number and name are shown within various parts of
[the IDEs][0], e.g.

![VS Minimum Android Version](https://i.stack.imgur.com/XGp32.png)

	Android 9.0 (Pie)
	Android 8.1 (Oreo)

The problem is that starting with Android 10, Google is no longer
providing "nicknames" for Android releases.

What should Visual Studio do?

*Currently*, we still emit a Name of "Q" for API-29, thus VS shows:

	Android 10.0 (Q)

We could "clear out" the Name value, but unfortunately VS currently
doesn't special-case this in any way, and thus would show:

	Android 10.0 ()

Which looks "wrong".

Fixing this will require two changes:

 1. We (xamarin-android) will begin clearing out the Name for Android
    releases which lack a nickname, and

 2. The VS team will modify their Target Framework name generation
    logic such that the parenthesis and Name are only used when Name
    is a non-empty value.  This will allow API-29 to have a displayed
    name of `Android 10.0`.

Begin the process: begin emitting an empty Name field for API-29,
allowing the IDE team to begin implementing their side.

[0]: https://stackoverflow.com/questions/55945365/how-can-i-target-android-4-1-in-visual-studio-2019
@jonpryor jonpryor requested a review from grendello as a code owner January 28, 2020 19:39
Base automatically changed from master to main March 5, 2021 23:08
@jonpryor
Copy link
Contributor Author

Closing as "moot" as this is dealt with in the IDEs.

@jonpryor jonpryor closed this Mar 12, 2025
@github-actions github-actions bot locked and limited conversation to collaborators Apr 12, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants