Skip to content

Conversation

@spouliot
Copy link
Contributor

No description provided.

spouliot and others added 30 commits November 2, 2016 17:49
* Bump Xcode to 8.2 and update API files to match C8SR1

* [tests] Tweak tests so there's no failure when running against Xcode 8.2 and the new SDK
- Also use smart enums for HMServiceType, HMCharacteristicType and HMAccessoryCategoryType.
* UICloudSharingPermissionOptions is not part in watchOS. It's an enum so
  it's not a big issue (worth a breaking change) -> XAMCORE_4_0

* Remove TODO on UICloudSharingController as Apple fixed our rdar 27929711
As suspected CanAddFelicaPass is part of watchOS 3.1, closing our
reported rdar 28608634
This allows us to convert some existing manual conversion code into
generated code and never miss a new constant being added [1].

The additional control comes in two forms:

* allow [Field (null)]: a null NSString constant will return this
  enum value instead of throwing an ArgumentNullException;

* a new `[DefaultEnumValue]` attribute allow marking the constant to be
  returned if the enum value is not known;

[1] Vincent found some missing in HomeKit when adding the new ones
from iOS 10.

This commits also adds documentation for the existing (missing) and
new attributes.
…6285 (dotnet#1102)

Considering the following binding code:

    public enum HMAccessoryCategoryType {
        [Field ("HMAccessoryCategoryTypeGarageDoorOpener")]
        DoorOpener,

        GarageDoorOpener = DoorOpener,
    }

We must

1. Ensure that `HMAccessoryCategoryType.DoorOpener.GetConstant () ==
	HMAccessoryCategoryType.GarageDoorOpener.GetConstant ()`;

This is done by using the numeric value of the enum member (instead of the name)

2. Ensure that `HMAccessoryCategoryTypeExtensions.GetValue ("HMAccessoryCategoryTypeGarageDoorOpener")`
   always return the same enum value, i.e. it can **not** change between
   XI versions (e.g. due to reflection ordering) as it could break
   comparison code;

This is done by only adding a map to the member that has a [Field] and
means that:

2.1. the _favorite_ enum member should be the one with the [Field]; and

2.2. a [Field] value can only be used once per enum (or else we report
     an BI1046 error). This also solve the duplicate code generation for
	 the constant loading code;

Reference:
* https://bugzilla.xamarin.com/show_bug.cgi?id=46285
Normally the removal of `HandleAction` would be a breaking change (and
require a stub). However Xamarin.WatchOS.dll is not final before C9 so
this fix will be backported to `master` and `cycle9` branches.
[generator] Backport smart enum fixes from master
Effectively there's no API change, but a new (for tvOS) header was added
even if it does not include stuff added to tvOS. This requires a few
updates for xtro to gives correct results.

Also added comments in bindings since this makes things clearer.
…cs.Process. (dotnet#1137)

This is a backport of these commits from master: 4d06d05, 1fdd17e and 39ec76e.

It fixes this mtouch test:

    1) Test Error : MTouchTests.MTouch.ScriptedTests

        [...]
        error MT0000: Unexpected error - Please file a bug report at http://bugzilla.xamarin.com
        System.IO.IOException: Too many open files
          at System.Diagnostics.Process.CreatePipe (System.IntPtr& read, System.IntPtr& write, System.Boolean writeDirection) [0x00094] in /private/tmp/source-mono-4.6.0-c8sr0/bockbuild-mono-4.6.0-branch-c8sr0/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/System/System.Diagnostics/Process.cs:659
          at System.Diagnostics.Process.StartWithCreateProcess (System.Diagnostics.ProcessStartInfo startInfo) [0x0012c] in /private/tmp/source-mono-4.6.0-c8sr0/bockbuild-mono-4.6.0-branch-c8sr0/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/System/System.Diagnostics/Process.cs:716
- Also add missing HMCharacteristicTypeSecuritySystemAlarmType.
- Enable some MediaPlayer-related UIKit APIs.
- tools/common/Frameworks.cs fix to handle build version digit.
- Lots of [NoMac] and [Mac (10,12,2)].
Since bug #46292: "[generator] Obsolete attribute doesn't make it to generated file for smart enums"
and #46285: "[generator] Smart enum does not handle 2 equal values" are both fixed, the comments can be removed.

Also we don't need to have the [Field] attribute on 2 enum values anymore.
- MPMusicPlayerController_MPPlaybackControl category isn't available on tvOS.
- Add missing `MPMediaPlaylist` selectors.
dalexsoto and others added 22 commits November 16, 2016 00:28
[Photos] Update Photos to Xcode 8.2 Beta 2
[HomeKit] Update to Xcode 8.2 Beta 2
[Intents] Update to Xcode 8.2 Beta 2
[passkit] Update for iOS 10.2 beta 2
* [AVFoundation] Update bindings for Xcode 8.2

* Fix typo.

* Move property to the correct class.
As xtro pointed out (see https://gist.github.com/spouliot/b634e5d1a5590a629d6c6c00e4eadbef)
APIs that were marked as available for watchOS 3.1.1 weren't in fact available.

Note: it's not impossible that a future version of Xcode actually adds those.
We'll then be able to just revert this commit.
…et#1239)

reference:
!unknown-pinvoke! glGetQueryObjectivEXT bound
…bAuthTokenOperation (dotnet#1240)

Header files were not updated (in Xcode 8.2) for watchOS 3.1 so some
changes should be delayed (in case the fork is permanent)

reference:
!missing-designated-initializer! CKFetchWebAuthTokenOperation::initWithAPIToken: is missing an [DesignatedInitializer] attribute
reference:
!missing-selector! NSMutableURLRequest::bindToHotspotHelperCommand: not bound
* [AVKit] Add missing enum for Xcode 8.2 beta 1.

* As per review, move away from the enum implementation, add a static class with the valid strings.
dotnet#1262)

Xcode 8.2 (beta 1) changed the default `init` to throw the following

`NSInvalidArgumentException Reason: *** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[1]`

So we introduce compatibility stubs to avoid the native exception, warn
the developers and maintain binary compatibility
…h specific entitlements (dotnet#1158)

* Enable default constructor on NEPacketTunnelProvider
* NEPacketTunnelNetworkSettings needs the same constructor as parent class
* skip NEPacketTunnelProvider in ctor init test

From @VincentDondain

`NEPacketTunnelProvider *a = [[NEPacketTunnelProvider alloc] init];` return `nil` without these entitlements:

```
<key>com.apple.developer.networking.networkextension</key>
<array>
    <string>packet-tunnel-provider</string>
    <string>app-proxy-provider</string>
    <string>content-filter-provider</string>
</array>
```

Note: you're also supposed to call it from its "extension process" otherwise you get: `NEProvider objects cannot be instantiated from non-extension processes.`

Hence from an iOS App Extension that has the `com.apple.networkextension.packet-tunnel` extension point.
…bsolete (dotnet#1267)

The returned instance cannot be used [1]. However removing it would be
a breaking change so we're obsoleting the API (until a new version of
the profile).

[1] dotnet#1158 (comment)
[networkextension] Enable default contructor on NETunnelProviderManager
@monojenkins
Copy link
Collaborator

Build failure

@spouliot spouliot merged commit 5a79811 into dotnet:cycle8-xi Dec 13, 2016
@spouliot spouliot deleted the cycle8-xi-xcode82 branch December 13, 2016 16:43
@spouliot
Copy link
Contributor Author

failure due to ibtool hang / fsharp / watchOS -> https://bugzilla.xamarin.com/show_bug.cgi?id=46097

VincentDondain added a commit to VincentDondain/xamarin-macios that referenced this pull request Jan 22, 2019
- Fixes issue dotnet#1345: [FAIL] GestureRecognizerTest.NoStrongCycles : Any finalized
(xamarin/maccore#1345)
- Because `UIGestureRecognizer` has an `OnDispose ()` method called by `Dispose ()` it also means we're at some point running `GC.SuppressFinalize()`.
  Therefore, fix the test to also call the delegate when `Dispose ()` is called and not the finalizer only.
  As I understand, the goal of this test is to make sure that the `UIGestureRecognizer` does not hold `FinalizerNotifier`, a.k.a that its finalizer / dispose is called.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants