Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Documentation/workflow/HowToAddNewApiLevel.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ the new platform will be downloaded to your local Android SDK.
- Read the note at the bottom of `/src/Mono.Android/metadata` that has a few lines that must be
copy/pasted for new API levels
- Add required metadata fixes in `/src/Mono.Android/metadata` until `Mono.Android.csproj` builds
- Check that new package/namespaces are properly cased

### ApiCompat

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public AndroidToolchain ()
new AndroidPlatformComponent ("platform-28_r04", apiLevel: "28", pkgRevision: "4"),
new AndroidPlatformComponent ("platform-29_r01", apiLevel: "29", pkgRevision: "1"),
new AndroidPlatformComponent ("platform-30_r01", apiLevel: "30", pkgRevision: "1"),
new AndroidPlatformComponent ("platform-S_r02", apiLevel: "S", pkgRevision: "2"),
new AndroidPlatformComponent ("platform-S_r03", apiLevel: "S", pkgRevision: "3"),

new AndroidToolchainComponent ("sources-30_r01", destDir: Path.Combine ("platforms", $"android-30", "src"), pkgRevision: "1", dependencyType: AndroidToolchainComponentType.BuildDependency),

Expand Down
8 changes: 8 additions & 0 deletions src/Mono.Android/metadata
Original file line number Diff line number Diff line change
Expand Up @@ -1643,6 +1643,14 @@
<attr api-since="31" path="/api/package[@name='android.location']/*[@name='LocationManager']/method[@name='addTestProvider']/parameter[@name='powerUsage']" name="name">powerRequirement</attr>
<attr api-since="31" path="/api/package[@name='java.math']/*[@name='RoundingMode']/method[@name='valueOf']/parameter[@name='rm']" name="name">mode</attr>

<!-- Rename Namespaces -->
<attr api-since="31" path="/api/package[@name='android.app.appsearch']" name="managedName">Android.App.AppSearch</attr>
<attr api-since="31" path="/api/package[@name='android.app.appsearch.exceptions']" name="managedName">Android.App.AppSearch.Exceptions</attr>
<attr api-since="31" path="/api/package[@name='android.location.provider']" name="managedName">Android.Locations.Provider</attr>
<attr api-since="31" path="/api/package[@name='android.net.ipsec.ike']" name="managedName">Android.Net.IpSec.Ike</attr>
<attr api-since="31" path="/api/package[@name='android.net.ipsec.ike.exceptions']" name="managedName">Android.Net.IpSec.Ike.Exceptions</attr>
<attr api-since="31" path="/api/package[@name='android.view.displayhash']" name="managedName">Android.Views.DisplayHash</attr>

<!-- These interfaces contain constants users need to reference, but the interfaces are protected, nested in a sealed type. -->
<!-- C# won't let you access protected types in a sealed type, so make them public so they can be used by user code. -->
<attr api-since="30" path="/api/package[@name='android.provider']/interface[contains(@name, 'Contract.') and contains(@name, 'Columns') and @visibility='protected']" name="visibility">public</attr>
Expand Down
3 changes: 3 additions & 0 deletions tests/api-compatibility/acceptable-breakages-v11.0.99.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@ CannotChangeAttribute : Attribute 'System.ObsoleteAttribute' on 'System.Int32 An
CannotChangeAttribute : Attribute 'System.ObsoleteAttribute' on 'System.String Android.Provider.ContactsContract.DataColumns.CarrierPresence' changed from '[ObsoleteAttribute("Use 'Android.Provider.ContactsContract.IDataColumns.CarrierPresence'. This class will be removed in a future release.")]' in the contract to '[ObsoleteAttribute("deprecated")]' in the implementation.
InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Java.Lang.IDeprecated.ForRemoval()' is present in the implementation but not in the contract.
InterfacesShouldHaveSameMembers : Interface member 'public System.String Java.Lang.IDeprecated.Since()' is present in the implementation but not in the contract.
CannotChangeAttribute : Attribute 'System.ObsoleteAttribute' on 'System.String Android.Provider.MediaStore.Audio.PlaylistsColumns.DateAdded' changed from '[ObsoleteAttribute("Use 'Android.Provider.MediaStore.Audio.IPlaylistsColumns.DateAdded'. This class will be removed in a future release.")]' in the contract to '[ObsoleteAttribute("deprecated")]' in the implementation.
CannotChangeAttribute : Attribute 'System.ObsoleteAttribute' on 'System.String Android.Provider.MediaStore.Audio.PlaylistsColumns.DateModified' changed from '[ObsoleteAttribute("Use 'Android.Provider.MediaStore.Audio.IPlaylistsColumns.DateModified'. This class will be removed in a future release.")]' in the contract to '[ObsoleteAttribute("deprecated")]' in the implementation.
CannotChangeAttribute : Attribute 'System.ObsoleteAttribute' on 'System.String Android.Provider.MediaStore.Audio.PlaylistsColumns.Name' changed from '[ObsoleteAttribute("Use 'Android.Provider.MediaStore.Audio.IPlaylistsColumns.Name'. This class will be removed in a future release.")]' in the contract to '[ObsoleteAttribute("deprecated")]' in the implementation.