diff --git a/src/Mono.Android/Android.Hardware/HardwareBuffer.cs b/src/Mono.Android/Android.Hardware/HardwareBuffer.cs new file mode 100644 index 00000000000..ec3f2351cd2 --- /dev/null +++ b/src/Mono.Android/Android.Hardware/HardwareBuffer.cs @@ -0,0 +1,44 @@ +using Android.Runtime; +using Java.Interop; + +namespace Android.Hardware; + +public partial class HardwareBuffer +{ + // These are manually bound because we do not have a way to bind the `long` enum values. + // generator treats them as int, like: + // __args [4] = new JniArgumentValue ((int) usage); + + // Metadata.xml XPath method reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/method[@name='create' and count(parameter)=5 and parameter[1][@type='int'] and parameter[2][@type='int'] and parameter[3][@type='int'] and parameter[4][@type='int'] and parameter[5][@type='long']]" + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] + [Register ("create", "(IIIIJ)Landroid/hardware/HardwareBuffer;", "", ApiSince = 26)] + public static unsafe Android.Hardware.HardwareBuffer Create (int width, int height, [global::Android.Runtime.GeneratedEnum] Android.Hardware.HardwareBufferFormat format, int layers, Android.Hardware.HardwareBufferUsage usage) + { + const string __id = "create.(IIIIJ)Landroid/hardware/HardwareBuffer;"; + try { + JniArgumentValue* __args = stackalloc JniArgumentValue [5]; + __args [0] = new JniArgumentValue (width); + __args [1] = new JniArgumentValue (height); + __args [2] = new JniArgumentValue ((int) format); + __args [3] = new JniArgumentValue (layers); + __args [4] = new JniArgumentValue ((long) usage); + var __rm = _members.StaticMethods.InvokeObjectMethod (__id, __args); + return global::Java.Lang.Object.GetObject (__rm.Handle, JniHandleOwnership.TransferLocalRef)!; + } finally { + } + } + + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] + public unsafe Android.Hardware.HardwareBufferUsage Usage { + // Metadata.xml XPath method reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/method[@name='getUsage' and count(parameter)=0]" + [Register ("getUsage", "()J", "", ApiSince = 26)] + get { + const string __id = "getUsage.()J"; + try { + var __rm = _members.InstanceMethods.InvokeAbstractInt64Method (__id, this, null); + return (Android.Hardware.HardwareBufferUsage) __rm!; + } finally { + } + } + } +} diff --git a/src/Mono.Android/Android.Hardware/HardwareBufferUsage.cs b/src/Mono.Android/Android.Hardware/HardwareBufferUsage.cs new file mode 100644 index 00000000000..49c24e4b78d --- /dev/null +++ b/src/Mono.Android/Android.Hardware/HardwareBufferUsage.cs @@ -0,0 +1,64 @@ +namespace Android.Hardware; + +[System.Flags] +[global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] +public enum HardwareBufferUsage : long +{ + None = 0, + + // Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_COMPOSER_OVERLAY']" + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android33.0")] + UsageComposerOverlay = 2048, + + // Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_CPU_READ_OFTEN']" + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] + UsageCpuReadOften = 3, + + // Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_CPU_READ_RARELY']" + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] + UsageCpuReadRarely = 2, + + // Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_CPU_WRITE_OFTEN']" + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] + UsageCpuWriteOften = 48, + + // Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_CPU_WRITE_RARELY']" + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] + UsageCpuWriteRarely = 32, + + // Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_FRONT_BUFFER']" + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android33.0")] + UsageFrontBuffer = 4294967296, + + // Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_GPU_COLOR_OUTPUT']" + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] + UsageGpuColorOutput = 512, + + // Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_GPU_CUBE_MAP']" + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] + UsageGpuCubeMap = 33554432, + + // Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_GPU_DATA_BUFFER']" + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] + UsageGpuDataBuffer = 16777216, + + // Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_GPU_MIPMAP_COMPLETE']" + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] + UsageGpuMipmapComplete = 67108864, + + // Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_GPU_SAMPLED_IMAGE']" + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] + UsageGpuSampledImage = 256, + + // Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_PROTECTED_CONTENT']" + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] + UsageProtectedContent = 16384, + + // Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_SENSOR_DIRECT_DATA']" + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] + UsageSensorDirectData = 8388608, + + // Metadata.xml XPath field reference: path="/api/package[@name='android.hardware']/class[@name='HardwareBuffer']/field[@name='USAGE_VIDEO_ENCODE']" + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android26.0")] + UsageVideoEncode = 65536 +} diff --git a/src/Mono.Android/Android.Telephony.Mbms/StreamingService.cs b/src/Mono.Android/Android.Telephony.Mbms/StreamingService.cs new file mode 100644 index 00000000000..8b67f05551a --- /dev/null +++ b/src/Mono.Android/Android.Telephony.Mbms/StreamingService.cs @@ -0,0 +1,24 @@ +using Android.Runtime; + +namespace Android.Telephony.Mbms; + +public partial class StreamingService +{ + // Metadata.xml XPath field reference: path="/api/package[@name='android.telephony.mbms']/class[@name='StreamingService']/field[@name='STATE_STALLED']" + [Register ("STATE_STALLED", ApiSince = 28)] + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] + [global::System.Obsolete (@"This constant will be removed in a future version. Use Android.Telephony.StreamingState enum directly instead of this field.", error: true)] + public const int StateStalled = 3; + + // Metadata.xml XPath field reference: path="/api/package[@name='android.telephony.mbms']/class[@name='StreamingService']/field[@name='STATE_STARTED']" + [Register ("STATE_STARTED", ApiSince = 28)] + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] + [global::System.Obsolete (@"This constant will be removed in a future version. Use Android.Telephony.StreamingState enum directly instead of this field.", error: true)] + public const int StateStarted = 2; + + // Metadata.xml XPath field reference: path="/api/package[@name='android.telephony.mbms']/class[@name='StreamingService']/field[@name='STATE_STOPPED']" + [Register ("STATE_STOPPED", ApiSince = 28)] + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] + [global::System.Obsolete (@"This constant will be removed in a future version. Use Android.Telephony.StreamingState enum directly instead of this field.", error: true)] + public const int StateStopped = 1; +} diff --git a/src/Mono.Android/Android.Telephony/MbmsDownloadSession.cs b/src/Mono.Android/Android.Telephony/MbmsDownloadSession.cs new file mode 100644 index 00000000000..7962278b6a8 --- /dev/null +++ b/src/Mono.Android/Android.Telephony/MbmsDownloadSession.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Android.Runtime; + +namespace Android.Telephony; + +public partial class MbmsDownloadSession +{ + // Metadata.xml XPath field reference: path="/api/package[@name='android.telephony']/class[@name='MbmsDownloadSession']/field[@name='STATUS_ACTIVELY_DOWNLOADING']" + [Register ("STATUS_ACTIVELY_DOWNLOADING", ApiSince = 28)] + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] + [global::System.Obsolete (@"This constant will be removed in the future version. Use Android.Telephony.Mbms.DownloadStatus enum directly instead of this field.", error: true)] + public const int StatusActivelyDownloading = 1; + + // Metadata.xml XPath field reference: path="/api/package[@name='android.telephony']/class[@name='MbmsDownloadSession']/field[@name='STATUS_PENDING_DOWNLOAD']" + [Register ("STATUS_PENDING_DOWNLOAD", ApiSince = 28)] + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] + [global::System.Obsolete (@"This constant will be removed in the future version. Use Android.Telephony.Mbms.DownloadStatus enum directly instead of this field.", error: true)] + public const int StatusPendingDownload = 2; + + // Metadata.xml XPath field reference: path="/api/package[@name='android.telephony']/class[@name='MbmsDownloadSession']/field[@name='STATUS_PENDING_DOWNLOAD_WINDOW']" + [Register ("STATUS_PENDING_DOWNLOAD_WINDOW", ApiSince = 28)] + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] + [global::System.Obsolete (@"This constant will be removed in the future version. Use Android.Telephony.Mbms.DownloadStatus enum directly instead of this field.", error: true)] + public const int StatusPendingDownloadWindow = 4; + + // Metadata.xml XPath field reference: path="/api/package[@name='android.telephony']/class[@name='MbmsDownloadSession']/field[@name='STATUS_PENDING_REPAIR']" + [Register ("STATUS_PENDING_REPAIR", ApiSince = 28)] + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] + [global::System.Obsolete (@"This constant will be removed in the future version. Use Android.Telephony.Mbms.DownloadStatus enum directly instead of this field.", error: true)] + public const int StatusPendingRepair = 3; + + // Metadata.xml XPath field reference: path="/api/package[@name='android.telephony']/class[@name='MbmsDownloadSession']/field[@name='STATUS_UNKNOWN']" + [Register ("STATUS_UNKNOWN", ApiSince = 28)] + [global::System.Runtime.Versioning.SupportedOSPlatformAttribute ("android28.0")] + [global::System.Obsolete (@"This constant will be removed in the future version. Use Android.Telephony.Mbms.DownloadStatus enum directly instead of this field.", error: true)] + public const int StatusUnknown = 0; +} diff --git a/src/Mono.Android/Mono.Android.csproj b/src/Mono.Android/Mono.Android.csproj index 7e7ad031604..176bfa92703 100644 --- a/src/Mono.Android/Mono.Android.csproj +++ b/src/Mono.Android/Mono.Android.csproj @@ -80,12 +80,16 @@ + + + + diff --git a/src/Mono.Android/PublicAPI/API-34/PublicAPI.Unshipped.txt b/src/Mono.Android/PublicAPI/API-34/PublicAPI.Unshipped.txt index 91b0e1a43b9..9233397fc10 100644 --- a/src/Mono.Android/PublicAPI/API-34/PublicAPI.Unshipped.txt +++ b/src/Mono.Android/PublicAPI/API-34/PublicAPI.Unshipped.txt @@ -1 +1,42 @@ -#nullable enable \ No newline at end of file +#nullable enable +abstract Android.Net.Wifi.WifiManager.WpsCallback.OnFailed(Android.Net.Wifi.WpsFailureReason reason) -> void +Android.Graphics.ImageDecoder.Allocator.get -> Android.Graphics.ImageDecoderAllocator +Android.Graphics.ImageDecoder.Allocator.set -> void +Android.Hardware.HardwareBuffer.Usage.get -> Android.Hardware.HardwareBufferUsage +Android.Hardware.HardwareBufferUsage +Android.Hardware.HardwareBufferUsage.None = 0 -> Android.Hardware.HardwareBufferUsage +Android.Hardware.HardwareBufferUsage.UsageComposerOverlay = 2048 -> Android.Hardware.HardwareBufferUsage +Android.Hardware.HardwareBufferUsage.UsageCpuReadOften = 3 -> Android.Hardware.HardwareBufferUsage +Android.Hardware.HardwareBufferUsage.UsageCpuReadRarely = 2 -> Android.Hardware.HardwareBufferUsage +Android.Hardware.HardwareBufferUsage.UsageCpuWriteOften = 48 -> Android.Hardware.HardwareBufferUsage +Android.Hardware.HardwareBufferUsage.UsageCpuWriteRarely = 32 -> Android.Hardware.HardwareBufferUsage +Android.Hardware.HardwareBufferUsage.UsageFrontBuffer = 4294967296 -> Android.Hardware.HardwareBufferUsage +Android.Hardware.HardwareBufferUsage.UsageGpuColorOutput = 512 -> Android.Hardware.HardwareBufferUsage +Android.Hardware.HardwareBufferUsage.UsageGpuCubeMap = 33554432 -> Android.Hardware.HardwareBufferUsage +Android.Hardware.HardwareBufferUsage.UsageGpuDataBuffer = 16777216 -> Android.Hardware.HardwareBufferUsage +Android.Hardware.HardwareBufferUsage.UsageGpuMipmapComplete = 67108864 -> Android.Hardware.HardwareBufferUsage +Android.Hardware.HardwareBufferUsage.UsageGpuSampledImage = 256 -> Android.Hardware.HardwareBufferUsage +Android.Hardware.HardwareBufferUsage.UsageProtectedContent = 16384 -> Android.Hardware.HardwareBufferUsage +Android.Hardware.HardwareBufferUsage.UsageSensorDirectData = 8388608 -> Android.Hardware.HardwareBufferUsage +Android.Hardware.HardwareBufferUsage.UsageVideoEncode = 65536 -> Android.Hardware.HardwareBufferUsage +Android.Telephony.Mbms.DownloadStatus +Android.Telephony.Mbms.DownloadStatus.ActivelyDownloading = 1 -> Android.Telephony.Mbms.DownloadStatus +Android.Telephony.Mbms.DownloadStatus.PendingDownload = 2 -> Android.Telephony.Mbms.DownloadStatus +Android.Telephony.Mbms.DownloadStatus.PendingDownloadWindow = 4 -> Android.Telephony.Mbms.DownloadStatus +Android.Telephony.Mbms.DownloadStatus.PendingRepair = 3 -> Android.Telephony.Mbms.DownloadStatus +Android.Telephony.Mbms.DownloadStatus.Unknown = 0 -> Android.Telephony.Mbms.DownloadStatus +Android.Telephony.StreamingState +Android.Telephony.StreamingState.Stalled = 3 -> Android.Telephony.StreamingState +Android.Telephony.StreamingState.Started = 2 -> Android.Telephony.StreamingState +Android.Telephony.StreamingState.Stopped = 1 -> Android.Telephony.StreamingState +static Android.Hardware.HardwareBuffer.Create(int width, int height, Android.Hardware.HardwareBufferFormat format, int layers, Android.Hardware.HardwareBufferUsage usage) -> Android.Hardware.HardwareBuffer! +static Android.Hardware.HardwareBuffer.IsSupported(int width, int height, Android.Hardware.HardwareBufferFormat format, int layers, long usage) -> bool +static Android.Icu.Text.Collator.GetEquivalentReorderCodes(int reorderCode) -> int[]? +virtual Android.Content.Context.BindIsolatedService(Android.Content.Intent! service, Android.Content.Context.BindServiceFlags! flags, string! instanceName, Java.Util.Concurrent.IExecutor! executor, Android.Content.IServiceConnection! conn) -> bool +virtual Android.Content.Context.BindIsolatedService(Android.Content.Intent! service, int flags, string! instanceName, Java.Util.Concurrent.IExecutor! executor, Android.Content.IServiceConnection! conn) -> bool +virtual Android.Icu.Text.Collator.GetReorderCodes() -> int[]? +virtual Android.Icu.Text.Collator.SetReorderCodes(params int[]? order) -> void +virtual Android.OS.HardwarePropertiesManager.GetDeviceTemperatures(Android.OS.DeviceTemperatureType type, Android.OS.TemperatureSource source) -> float[]! +virtual Android.Telephony.Mbms.DownloadStatusListener.OnStatusUpdated(Android.Telephony.Mbms.DownloadRequest? request, Android.Telephony.Mbms.FileInfo? fileInfo, Android.Telephony.Mbms.DownloadStatus status) -> void +virtual Android.Telephony.Mbms.StreamingServiceCallback.OnStreamMethodUpdated(Android.Telephony.Mbms.StreamingMethod methodType) -> void +virtual Android.Telephony.Mbms.StreamingServiceCallback.OnStreamStateUpdated(Android.Telephony.StreamingState state, Android.Telephony.Mbms.StreamingStateChangedReason reason) -> void \ No newline at end of file diff --git a/src/Mono.Android/map.csv b/src/Mono.Android/map.csv index 3f264f7af74..b544c0ef35f 100644 --- a/src/Mono.Android/map.csv +++ b/src/Mono.Android/map.csv @@ -13581,9 +13581,9 @@ E,28,android/telephony/mbms/StreamingService.REASON_LEFT_MBMS_BROADCAST_AREA,6,A E,28,android/telephony/mbms/StreamingService.REASON_NONE,0,Android.Telephony.Mbms.StreamingStateChangedReason,None,remove, E,28,android/telephony/mbms/StreamingService.REASON_NOT_CONNECTED_TO_HOMECARRIER_LTE,5,Android.Telephony.Mbms.StreamingStateChangedReason,NotConnectedToHomecarrierLte,remove, E,28,android/telephony/mbms/StreamingService.REASON_OUT_OF_MEMORY,4,Android.Telephony.Mbms.StreamingStateChangedReason,OutOfMemory,remove, -I,28,android/telephony/mbms/StreamingService.STATE_STALLED,3,,,, -I,28,android/telephony/mbms/StreamingService.STATE_STARTED,2,,,, -I,28,android/telephony/mbms/StreamingService.STATE_STOPPED,1,,,, +E,28,android/telephony/mbms/StreamingService.STATE_STALLED,3,Android.Telephony.StreamingState,Stalled,keep, +E,28,android/telephony/mbms/StreamingService.STATE_STARTED,2,Android.Telephony.StreamingState,Started,keep, +E,28,android/telephony/mbms/StreamingService.STATE_STOPPED,1,Android.Telephony.StreamingState,Stopped,keep, E,28,android/telephony/mbms/StreamingService.UNICAST_METHOD,2,Android.Telephony.Mbms.StreamingMethod,Unicast,remove, I,28,android/telephony/mbms/StreamingServiceCallback.SIGNAL_STRENGTH_UNAVAILABLE,-1,,,, I,28,android/telephony/MbmsDownloadSession.RESULT_CANCELLED,2,,,, @@ -13594,11 +13594,11 @@ I,28,android/telephony/MbmsDownloadSession.RESULT_IO_ERROR,4,,,, I,28,android/telephony/MbmsDownloadSession.RESULT_OUT_OF_STORAGE,7,,,, I,28,android/telephony/MbmsDownloadSession.RESULT_SERVICE_ID_NOT_DEFINED,5,,,, I,28,android/telephony/MbmsDownloadSession.RESULT_SUCCESSFUL,1,,,, -I,28,android/telephony/MbmsDownloadSession.STATUS_ACTIVELY_DOWNLOADING,1,,,, -I,28,android/telephony/MbmsDownloadSession.STATUS_PENDING_DOWNLOAD,2,,,, -I,28,android/telephony/MbmsDownloadSession.STATUS_PENDING_DOWNLOAD_WINDOW,4,,,, -I,28,android/telephony/MbmsDownloadSession.STATUS_PENDING_REPAIR,3,,,, -I,28,android/telephony/MbmsDownloadSession.STATUS_UNKNOWN,0,,,, +E,28,android/telephony/MbmsDownloadSession.STATUS_ACTIVELY_DOWNLOADING,1,Android.Telephony.Mbms.DownloadStatus,ActivelyDownloading,keep, +E,28,android/telephony/MbmsDownloadSession.STATUS_PENDING_DOWNLOAD,2,Android.Telephony.Mbms.DownloadStatus,PendingDownload,keep, +E,28,android/telephony/MbmsDownloadSession.STATUS_PENDING_DOWNLOAD_WINDOW,4,Android.Telephony.Mbms.DownloadStatus,PendingDownloadWindow,keep, +E,28,android/telephony/MbmsDownloadSession.STATUS_PENDING_REPAIR,3,Android.Telephony.Mbms.DownloadStatus,PendingRepair,keep, +E,28,android/telephony/MbmsDownloadSession.STATUS_UNKNOWN,0,Android.Telephony.Mbms.DownloadStatus,Unknown,keep, I,0,android/telephony/NeighboringCellInfo.UNKNOWN_CID,-1,,,, I,0,android/telephony/NeighboringCellInfo.UNKNOWN_RSSI,99,,,, E,30,android/telephony/NetworkRegistrationInfo.DOMAIN_CS,1,Android.Telephony.NetworkRegistrationInfoDomain,Cs,remove, diff --git a/src/Mono.Android/metadata b/src/Mono.Android/metadata index 2bbf00bbd67..d47276795f3 100644 --- a/src/Mono.Android/metadata +++ b/src/Mono.Android/metadata @@ -1880,7 +1880,11 @@ This method has an incorrect enumeration type. Use the overload that takes ReceiverFlags instead. This method has an incorrect enumeration type. Use the overload that takes ReceiverFlags instead. This method has an incorrect enumeration type. Use the overload that takes ReceiverFlags instead. - + + + + +