The class in the API is abstract, the problem is that when the
application goes to the background, when it gets back we try to
instantiate an abstract class probably because Apple returns a internal
type that we do not know about.
fixes: https://github.com/xamarin/xamarin-macios/issues/7456
`monotouch-glue.m` was replaced a while ago and the new code does not
need `Class.LookupFullName` to be preserved in debug builds.
Also `PreserveType` was unused code (left from even older times?)
Teach make that the target that creates Xamarin.Mac.dll also creates
Xamarin.Mac.pdb, which fixes an issue where the installed version of
Xamarin.Mac.pdb wouldn't always be updated in non-clean builds.
* Added nullability attributes to AVFoundation
* Revert AVPlayerItem FromAsset nullability attributes changes to keep existing tests passing and allow backwards compatibility
* Documents common-AVFoundation.ignore entry related to Foundation.NSNumber[] AVFoundation.AVVideoCompositionInstruction::get_RequiredSourceTrackIDs()
!extra-null-allowed! 'Foundation.NSNumber[] AVFoundation.AVVideoCompositionInstruction::get_RequiredSourceTrackIDs()' has a extraneous [NullAllowed] on return type
These methods were already partially using GCHandles, so convert the parameter
using ObjectWrapper to GCHandle, and port the rest of the existing logic to
use the new helper API.
The native methods xamarin_get_[generic_]method_from_token are a bit unusual
in that they return an actual GCHandle. This is for performance reasons, since
in some cases their return value is passed as parameters to other function
calls to managed code, in which case we need the GCHandle. This way we avoid
round-tripping a GCHandle multiple times.
A WeakReference contains a GCHandle and provides additional services on top,
but we don't need those services, so we can just use a GCHandle instead.
This should decrease memory usage somewhat, since we won't have the
WeakReference objects around.
This also prepares us for switching the native API to use GCHandle instead of
passing MonoObject* to managed code (we won't have to re-create a GCHandle
inside a WeakReference when passed a GCHandle for a managed object).
* initial imagio bindings + test project
* remove sample files, update xtro
* clean up
* add new line at eof
* even more cleanup...
* update based on PR feedback
* reformat according to coding standards
* fix all feedback except monotouch tests
* add monotouch-test files
* fix test feedback
* fix PR feedback
* fix timeout in tests, add asserts for status, update return value for APi to CGImageAnimationStatus enum
* fix == asserts
* respond to more pr feedback
* add StrongDictionary, remove Partial
* NSNumber -> nuint for NSUInteger
* add smaller gif
* remove hack.gif from project
* add gif to csproj
- Runs on older macOS show the type is not as documented, nm confirms.
1) ApiCtorInitTest.DefaultCtorAllowed (Introspection.MacApiCtorInitTest.ApiCtorInitTest.DefaultCtorAllowed)
1 potential errors found in 1143 default ctor validated:
Default constructor not allowed for AVFoundation.AVPlayerItemMetadataCollector : Could not create an native instance of the type 'AVFoundation.AVPlayerItemMetadataCollector': the native class hasn't been loaded.
- Fix https://github.com/xamarin/xamarin-macios/issues/8274
- Turns out that MKLocalSearchCompleter can be instanced, even on iOS
- Tested on sim and in docs
- MKLocalSearchCompletion is still not instanced, updating comment
`IsWWAN` is not available (so it won't be returned) but it's nicer to
include it anyway to make the code better looking.
The example that triggered this was
0bbb51c548 (r409239375)
C# 8 nullability attributes are special (injected into assemblies) and
not meant to be used from C# source code.
We do not **use** them (we generated them) so existing attributes can
be ignored (filtered) by the generator.
Fix https://github.com/xamarin/xamarin-macios/issues/8347
Enabling this will ensure that future bindings (and Xcode updates that
change nullability information) are spotted right away.
The binding fixes are **not** complete, i.e. what was done was mostly
to debug the xtro rule and find corner cases. The backlog will be
_ignored_ so the builds won't fail.