Skip to content

Commit

Permalink
[Mono.Android] Initial API-28 Binding (#1790)
Browse files Browse the repository at this point in the history
Android P Developer Preview 3 has been released, which contains the
*final* API-28 Java API.

Provide an *initial* (not *stable*) API binding for API-28,
`$(TargetFrameworkversion)`=v9.0 (not v8.1.99).  This initial binding
is not stable because enumification hasn't been performed yet.

Bumps to mono/2018-02/6f9bef3b

Related change: [API-28 removes the `Canvas.save(int)` method][0],
which caused `Xamarin.Android.McwGen-Tests` to not build:

[0]: https://developer.android.com/sdk/api_diff/p-dp2/changes

          "javac" -source 1.5 -target 1.6 -d "obj/Debug/__CreateTestJarFile-bin" -cp "…/android-toolchain/sdk/platforms/android-28/android.jar" "java/com/xamarin/android/Bxc4288.java" "java/com/xamarin/android/Bxc58383.java" "java/com/xamarin/android/CallMethodFromCtor.java" "java/com/xamarin/android/CallNonvirtualBase.java" "java/com/xamarin/android/CallNonvirtualDerived.java" "java/com/xamarin/android/DataHandler.java" "java/com/xamarin/android/DataListener.java" "java/com/xamarin/android/Logger.java" "java/com/xamarin/android/MarkerIgnoringBase.java" "java/com/xamarin/android/MyCanvas.java" "java/com/xamarin/android/Timing.java" "java/com/xamarin/android/Bxc9446.java" "java/com/xamarin/android/Bxc7634.java" "java/com/xamarin/android/Bxc37706Throwable.java"
          java/com/xamarin/android/MyCanvas.java:12: error: method does not override or implement a method from a supertype
            @OverRide
            ^ (TaskId:1188)
          java/com/xamarin/android/MyCanvas.java:15: error: method save in class Canvas cannot be applied to given types;
              return super.save (saveFlags);
                          ^
            required: no arguments
            found: int
            reason: actual and formal argument lists differ in length
          2 errors

Fix `MyCanvas.java` to instead override `Canvas.save()`.
  • Loading branch information
atsushieno authored and jonpryor committed Jun 11, 2018
1 parent 7bd8b7d commit 01988e0
Show file tree
Hide file tree
Showing 11 changed files with 26 additions and 32 deletions.
12 changes: 6 additions & 6 deletions Configuration.props
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@
<!-- Should correspond to the first value from `$(API_LEVELS)` in `build-tools/scripts/BuildEverything.mk` -->
<AndroidFirstFrameworkVersion Condition="'$(AndroidFirstFrameworkVersion)' == ''">v2.3</AndroidFirstFrameworkVersion>
<!-- *Latest* *stable* API level binding that we support; used when building src/Xamarin.Android.Build.Tasks -->
<AndroidLatestStableApiLevel Condition="'$(AndroidLatestStableApiLevel)' == ''">27</AndroidLatestStableApiLevel>
<AndroidLatestStableApiLevel Condition="'$(AndroidLatestStableApiLevel)' == ''">28</AndroidLatestStableApiLevel>
<AndroidLatestStablePlatformId Condition="'$(AndroidLatestStablePlatformId)' == ''">$(AndroidLatestStableApiLevel)</AndroidLatestStablePlatformId>
<AndroidLatestStableFrameworkVersion Condition="'$(AndroidLatestStableFrameworkVersion)'==''">v8.1</AndroidLatestStableFrameworkVersion>
<AndroidLatestStableFrameworkVersion Condition="'$(AndroidLatestStableFrameworkVersion)'==''">v9.0</AndroidLatestStableFrameworkVersion>
<!-- *Latest* (possibly unstable) API level binding that we support; for informational purposes -->
<AndroidLatestApiLevel Condition="'$(AndroidLatestApiLevel)' == ''">28</AndroidLatestApiLevel>
<AndroidLatestPlatformId Condition=" '$(AndroidLatestPlatformId)' == '' ">P</AndroidLatestPlatformId>
<AndroidLatestFrameworkVersion Condition="'$(AndroidLatestFrameworkVersion)' == ''">v8.1.99</AndroidLatestFrameworkVersion>
<AndroidLatestPlatformId Condition=" '$(AndroidLatestPlatformId)' == '' ">28</AndroidLatestPlatformId>
<AndroidLatestFrameworkVersion Condition="'$(AndroidLatestFrameworkVersion)' == ''">v9.0</AndroidLatestFrameworkVersion>
<!-- The API level and TargetFrameworkVersion for the default Mono.Android.dll build -->
<AndroidApiLevel Condition=" '$(AndroidApiLevel)' == '' ">$(AndroidLatestStableApiLevel)</AndroidApiLevel>
<AndroidPlatformId Condition=" '$(AndroidPlatformId)' == '' ">$(AndroidLatestStablePlatformId)</AndroidPlatformId>
Expand Down Expand Up @@ -77,8 +77,8 @@
<AllSupported32BitTargetAndroidAbis>armeabi;armeabi-v7a;x86</AllSupported32BitTargetAndroidAbis>
<AllSupported64BitTargetAndroidAbis>arm64-v8a;x86_64</AllSupported64BitTargetAndroidAbis>
<AllSupportedTargetAndroidAbis>$(AllSupported32BitTargetAndroidAbis);$(AllSupported64BitTargetAndroidAbis)</AllSupportedTargetAndroidAbis>
<XABuildToolsVersion>28-rc2</XABuildToolsVersion>
<XABuildToolsFolder Condition="'$(XABuildToolsFolder)' == ''">28.0.0-rc2</XABuildToolsFolder>
<XABuildToolsVersion>28</XABuildToolsVersion>
<XABuildToolsFolder Condition="'$(XABuildToolsFolder)' == ''">28.0.0</XABuildToolsFolder>
<XAIntegratedTests Condition="'$(XAIntegratedTests)' == ''">False</XAIntegratedTests>
<XAIncludeProprietaryBits Condition="'$(XAIncludeProprietaryBits)' == ''">False</XAIncludeProprietaryBits>
<PathSeparator>$([System.IO.Path]::PathSeparator)</PathSeparator>
Expand Down
8 changes: 4 additions & 4 deletions build-tools/android-toolchain/android-toolchain.projitems
Original file line number Diff line number Diff line change
Expand Up @@ -113,17 +113,17 @@
<HostOS></HostOS>
<DestDir>platforms\android-25</DestDir>
</AndroidSdkItem>
<AndroidSdkItem Include="platform-26_r01">
<AndroidSdkItem Include="platform-26_r02">
<HostOS></HostOS>
<DestDir>platforms\android-26</DestDir>
</AndroidSdkItem>
<AndroidSdkItem Include="platform-27_r01">
<AndroidSdkItem Include="platform-27_r03">
<HostOS></HostOS>
<DestDir>platforms\android-27</DestDir>
</AndroidSdkItem>
<AndroidSdkItem Include="platform-P_r03">
<AndroidSdkItem Include="platform-28_r04">
<HostOS></HostOS>
<DestDir>platforms\android-P</DestDir>
<DestDir>platforms\android-28</DestDir>
</AndroidSdkItem>
<AndroidSdkItem Include="docs-24_r01">
<HostOS></HostOS>
Expand Down
2 changes: 1 addition & 1 deletion build-tools/api-xml-adjuster/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ API_XML_TOOL = $(BUILDBIN)/api-xml-adjuster.exe
RUNTIME = mono --debug
RUN_CLASS_PARSE = $(RUNTIME) $(CLASS_PARSE)
RUN_API_XML_TOOL = $(RUNTIME) $(API_XML_TOOL)
API_LEVELS = 10 15 16 17 18 19 20 21 22 23 24 25 26 27 P
API_LEVELS = 10 15 16 17 18 19 20 21 22 23 24 25 26 27 28

XML_OUTPUT_DIR = .

Expand Down
8 changes: 4 additions & 4 deletions build-tools/enumification-helpers/Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
topdir = ../..

API_LEVEL = 27
API_LEVEL_NAME = 27
API_LEVEL = 28
API_LEVEL_NAME = 28

CSCOMPILE = csc -debug:portable

Expand All @@ -17,8 +17,8 @@ all:: map.ext.csv remaining-int-consts.txt remaining-int-methods-filtered.txt
generate-const-list-2.exe: generate-const-list-2.cs
$(CSCOMPILE) generate-const-list-2.cs

const-list-$(API_LEVEL).xml: generate-const-list-2.exe ../../src/Mono.Android/Profiles/*.xml.in
mono --debug generate-const-list-2.exe ../../src/Mono.Android/Profiles > const-list-$(API_LEVEL).xml || rm const-list-$(API_LEVEL).xml
const-list-$(API_LEVEL).xml: generate-const-list-2.exe ../../bin/Build$(CONFIGURATION)/api/*.xml.in
mono --debug generate-const-list-2.exe ../../bin/Build$(CONFIGURATION)/api > const-list-$(API_LEVEL).xml || rm const-list-$(API_LEVEL).xml

generate-const-mapping.exe: $(CONST_MAPPER_SOURCES)
$(CSCOMPILE) $(CONST_MAPPER_SOURCES)
Expand Down
4 changes: 2 additions & 2 deletions build-tools/scripts/BuildEverything.mk
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ ZIP_OUTPUT = $(ZIP_OUTPUT_BASENAME).$(ZIP_EXTENSION)
# $(ALL_API_LEVELS) and $(ALL_FRAMEWORKS) must be kept in sync w/ each other
ALL_API_LEVELS = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
# this was different from ALL_API_LEVELS when API Level 26 was "O". Same could happen in the future.
ALL_PLATFORM_IDS = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 P
ALL_PLATFORM_IDS = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
# supported api levels
ALL_FRAMEWORKS = _ _ _ _ _ _ _ _ _ v2.3 _ _ _ _ v4.0.3 v4.1 v4.2 v4.3 v4.4 v4.4.87 v5.0 v5.1 v6.0 v7.0 v7.1 v8.0 v8.1 v8.1.99
ALL_FRAMEWORKS = _ _ _ _ _ _ _ _ _ v2.3 _ _ _ _ v4.0.3 v4.1 v4.2 v4.3 v4.4 v4.4.87 v5.0 v5.1 v6.0 v7.0 v7.1 v8.0 v8.1 v9.0
API_LEVELS = 10 15 16 17 18 19 20 21 22 23 24 25 26 27 28
STABLE_API_LEVELS = 10 15 16 17 18 19 20 21 22 23 24 25 26 27

Expand Down
2 changes: 1 addition & 1 deletion external/mono
6 changes: 3 additions & 3 deletions src/Mono.Android/Mono.Android.projitems
Original file line number Diff line number Diff line change
Expand Up @@ -139,10 +139,10 @@
<Id>27</Id>
<Stable>True</Stable>
</AndroidApiInfo>
<AndroidApiInfo Include="v8.1.99">
<Name>P Preview UNSTABLE</Name>
<AndroidApiInfo Include="v9.0">
<Name>P</Name>
<Level>28</Level>
<Id>P</Id>
<Id>28</Id>
<Stable>False</Stable>
</AndroidApiInfo>
</ItemGroup>
Expand Down
2 changes: 2 additions & 0 deletions src/Mono.Android/Profiles/api-27.params.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9129,6 +9129,8 @@ package android.net.wifi.aware
onSubscribeStarted(android.net.wifi.aware.SubscribeDiscoverySession session)
class IdentityChangedListener
onIdentityChanged(byte[] mac)
class PeerHandle
equals(java.lang.Object o)
class PublishConfig
equals(java.lang.Object o)
writeToParcel(android.os.Parcel dest, int flags)
Expand Down
9 changes: 0 additions & 9 deletions src/Mono.Android/Profiles/api-28.params.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2125,26 +2125,20 @@ package android.app.slice
addRemoteInput(android.app.RemoteInput remoteInput, java.lang.String subType, java.util.List<java.lang.String> hints)
addSubSlice(android.app.slice.Slice slice, java.lang.String subType)
addText(java.lang.CharSequence text, java.lang.String subType, java.util.List<java.lang.String> hints)
addTimestamp(long time, java.lang.String subType, java.util.List<java.lang.String> hints)
setCallerNeeded(boolean callerNeeded)
setSpec(android.app.slice.SliceSpec spec)
#ctor(android.app.slice.Slice.Builder parent)
#ctor(android.net.Uri uri)
#ctor(android.net.Uri uri, android.app.slice.SliceSpec spec)
class SliceItem
hasHint(java.lang.String hint)
writeToParcel(android.os.Parcel dest, int flags)
class SliceManager
bindSlice(android.content.Intent intent, java.util.List<android.app.slice.SliceSpec> supportedSpecs)
bindSlice(android.content.Intent intent, java.util.Set<android.app.slice.SliceSpec> supportedSpecs)
bindSlice(android.net.Uri uri, java.util.List<android.app.slice.SliceSpec> supportedSpecs)
bindSlice(android.net.Uri uri, java.util.Set<android.app.slice.SliceSpec> supportedSpecs)
checkSlicePermission(android.net.Uri uri, int pid, int uid)
getPinnedSpecs(android.net.Uri uri)
getSliceDescendants(android.net.Uri uri)
grantSlicePermission(java.lang.String toPackage, android.net.Uri uri)
mapIntentToUri(android.content.Intent intent)
pinSlice(android.net.Uri uri, java.util.List<android.app.slice.SliceSpec> specs)
pinSlice(android.net.Uri uri, java.util.Set<android.app.slice.SliceSpec> specs)
revokeSlicePermission(java.lang.String toPackage, android.net.Uri uri)
unpinSlice(android.net.Uri uri)
Expand All @@ -2157,7 +2151,6 @@ package android.app.slice
delete(android.net.Uri uri, java.lang.String selection, java.lang.String[] selectionArgs)
getType(android.net.Uri uri)
insert(android.net.Uri uri, android.content.ContentValues values)
onBindSlice(android.net.Uri sliceUri, java.util.List<android.app.slice.SliceSpec> supportedSpecs)
onBindSlice(android.net.Uri sliceUri, java.util.Set<android.app.slice.SliceSpec> supportedSpecs)
onCreatePermissionRequest(android.net.Uri sliceUri)
onGetSliceDescendants(android.net.Uri uri)
Expand Down Expand Up @@ -3376,7 +3369,6 @@ package android.content.pm
#ctor(android.os.Parcel source)
dumpBack(android.util.Printer pw, java.lang.String prefix)
dumpFront(android.util.Printer pw, java.lang.String prefix)
loadLabel(android.content.pm.PackageManager pm)
writeToParcel(android.os.Parcel dest, int parcelableFlags)
class ConfigurationInfo
#ctor(android.content.pm.ConfigurationInfo orig)
Expand Down Expand Up @@ -14207,7 +14199,6 @@ package android.telephony
iccTransmitApduLogicalChannel(int channel, int cla, int instruction, int p1, int p2, int p3, java.lang.String data)
isVoicemailVibrationEnabled(android.telecom.PhoneAccountHandle accountHandle)
listen(android.telephony.PhoneStateListener listener, int events)
requestNetworkScan(android.telephony.NetworkScanRequest request, android.telephony.TelephonyScanManager.NetworkScanCallback callback)
requestNetworkScan(android.telephony.NetworkScanRequest request, java.util.concurrent.Executor executor, android.telephony.TelephonyScanManager.NetworkScanCallback callback)
sendDialerSpecialCode(java.lang.String inputCode)
sendEnvelopeWithStatus(java.lang.String content)
Expand Down
1 change: 1 addition & 0 deletions src/Mono.Android/metadata
Original file line number Diff line number Diff line change
Expand Up @@ -1407,5 +1407,6 @@
<attr path="/api/package[@name='android.view.textclassifier.logging']" name="managedName">Android.Views.TextClassifiers.Logging</attr>
<!-- okay you are NOT documented. Wasn't Google going to kill nonpublic classes? -->
<remove-node path="/api/package[@name='android.text']/class[@name='PrecomputedText']" />
<attr path="/api/package[@name='android.provider']/class[@name='Telephony.CarrierId']/field[@name='CARRIER_ID']" name="managedName">CarrierIdField</attr>

</metadata>
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ public void drawColor (int color)
}

@Override
public int save (int saveFlags)
public int save ()
{
return super.save (saveFlags);
return super.save ();
}
}

0 comments on commit 01988e0

Please sign in to comment.