Skip to content

Conversation

@github-actions
Copy link
Contributor

@github-actions github-actions bot commented Nov 1, 2021

Update to latest stable versions of components:

Updated artifacts

  • androidx.activity:activity - 1.3.1 -> 1.4.0

  • androidx.activity:activity-ktx - 1.3.1 -> 1.4.0

    • no API changes
  • androidx.core:core - 1.6.0 -> 1.7.0

  • androidx.core:core-ktx - 1.6.0 -> 1.7.0

    • no API changes
  • androidx.lifecycle:lifecycle-common - 2.3.1 -> 2.4.0

  • androidx.lifecycle:lifecycle-common-java8 - 2.3.1 -> 2.4.0

    • no API changes
  • androidx.lifecycle:lifecycle-livedata - 2.3.1 -> 2.4.0

    • no API changes
  • androidx.lifecycle:lifecycle-livedata-core - 2.3.1 -> 2.4.0

    • no API changes
  • androidx.lifecycle:lifecycle-livedata-core-ktx - 2.3.1 -> 2.4.0

    • no API changes
  • androidx.lifecycle:lifecycle-livedata-ktx - 2.3.1 -> 2.4.0

    • no API changes
  • androidx.lifecycle:lifecycle-process - 2.3.1 -> 2.4.0

  • androidx.lifecycle:lifecycle-reactivestreams - 2.3.1 -> 2.4.0

    • no API changes
  • androidx.lifecycle:lifecycle-reactivestreams-ktx - 2.3.1 -> 2.4.0

    • no API changes
  • androidx.lifecycle:lifecycle-runtime - 2.3.1 -> 2.4.0

    • no API changes
  • androidx.lifecycle:lifecycle-runtime-ktx - 2.3.1 -> 2.4.0

  • androidx.lifecycle:lifecycle-service - 2.3.1 -> 2.4.0

    • no API changes
  • androidx.lifecycle:lifecycle-viewmodel - 2.3.1 -> 2.4.0

  • androidx.lifecycle:lifecycle-viewmodel-ktx - 2.3.1 -> 2.4.0

  • androidx.lifecycle:lifecycle-viewmodel-savedstate - 2.3.1 -> 2.4.0

  • androidx.wear:wear-input - 1.0.0 -> 1.1.0

    • no API changes
  • androidx.wear:wear-ongoing - 1.1.0 -> 1.0.0

    • no API changes
  • androidx.window:window - 1.0.0-beta02 -> 1.0.0-beta04

  • androidx.window:window-java - 1.0.0-beta02 -> 1.0.0-beta04

  • com.google.code.gson:gson - 2.8.8 -> 2.8.9

  • org.jetbrains.kotlinx:kotlinx-coroutines-guava - -> 1.5.2

  • com.google.firebase:firebase-appindexing - -> 20.0.0

Changed, but not updated

  • androidx.constraintlayout.constraintlayout

  • androidx.coordinatorlayout.coordinatorlayout

  • androidx.security.security-crypto

  • androidx.swiperefreshlayout.swiperefreshlayout

  • androidx.wear.wear

  • com.google.crypto.tink.tink-android

Checklist

  • Add any metadata needed to get PR to compile
  • Verify any new namespaces are properly renamed (utilities.cake)
  • Verify nuget/namespace spelling (utilities.cake)
  • Locally generate diffs
  • Review any breaking changes
  • Attach diffs to PR

@moljac moljac requested a review from jpobst November 3, 2021 18:08
@moljac moljac marked this pull request as ready for review November 3, 2021 18:08
Copy link
Contributor

@jpobst jpobst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is causing the need to rework these methods:

Removed methods:

public virtual void OnNestedScrollAccepted (Android.Views.View child, Android.Views.View target, Android.Views.ScrollAxis axes, int type);
public virtual bool OnStartNestedScroll (Android.Views.View child, Android.Views.View target, Android.Views.ScrollAxis axes, int type);

Added methods:

public virtual void OnNestedScrollAccepted (Android.Views.View child, Android.Views.View target, int axes);
public virtual void OnNestedScrollAccepted2 (Android.Views.View child, Android.Views.View target, int axes, int type);
public virtual bool OnStartNestedScroll (Android.Views.View child, Android.Views.View target, int axes);
public virtual bool OnStartNestedScroll2 (Android.Views.View child, Android.Views.View target, int axes, int type);

This seems to hit several packages. If these are widely used, this has the possibility to cause extensive breaks to the ecosystem. Is there a way we can do this in a backwards compatible way?

[
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file looks like it was replaced with config.json, is that intentional?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no.
I need to see what I have done

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I resolved conflicts manually in github editor. Seems like I pasted config.json somehow. Not sure.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

building fromscratch to regenerate dependencies.json

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

@jpobst
Copy link
Contributor

jpobst commented Nov 4, 2021

It looks like something changed to the parameter names in AndroidX.Core, which is causing the enumification changes to fail:

/Users/runner/work/1/s/generated/androidx.core.core/obj/Release/monoandroid9.0/generated/metadata(8,4): warning BG8A04: Metadata.xml element '<attr path="/api/package[@name='androidx.core.view']/*[@name='NestedScrollingParent']/method[@name='onStartNestedScroll']/parameter[@name='axis']" />' matched no nodes. [/Users/runner/work/1/s/generated/androidx.core.core/androidx.core.core.csproj]

However we should still be changing the parameter name with this in Metadata.ParameterNames.xml:

<attr path="/api/package[@name='androidx.core.view']/interface[@name='NestedScrollingParent']/method[@name='onStartNestedScroll' and count(parameter)=3 and parameter[1][@type='android.view.View'] and parameter[2][@type='android.view.View'] and parameter[3][@type='int']]/parameter[3]" name="managedName">axes</attr>

This does not happen on main, so I think we need to investigate what is causing this to see if we can get it working again.

@moljac
Copy link
Contributor

moljac commented Nov 4, 2021

What is causing the need to rework these methods:

Removed methods:

public virtual void OnNestedScrollAccepted (Android.Views.View child, Android.Views.View target, Android.Views.ScrollAxis axes, int type);
public virtual bool OnStartNestedScroll (Android.Views.View child, Android.Views.View target, Android.Views.ScrollAxis axes, int type);

Added methods:

public virtual void OnNestedScrollAccepted (Android.Views.View child, Android.Views.View target, int axes);
public virtual void OnNestedScrollAccepted2 (Android.Views.View child, Android.Views.View target, int axes, int type);
public virtual bool OnStartNestedScroll (Android.Views.View child, Android.Views.View target, int axes);
public virtual bool OnStartNestedScroll2 (Android.Views.View child, Android.Views.View target, int axes, int type);

This seems to hit several packages. If these are widely used, this has the possibility to cause extensive breaks to the ecosystem. Is there a way we can do this in a backwards compatible way?

Not sure. I noticed some changes in interfaces in AndroidX.Core.View during last WSU (week ago):

AndroidX.Core.View.INestedScrollingParent
AndroidX.Core.View.INestedScrollingParent2
AndroidX.Core.View.INestedScrollingParent3

https://developer.android.com/reference/androidx/core/view/NestedScrollingParent

https://developer.android.com/reference/androidx/core/view/NestedScrollingParent2

https://developer.android.com/reference/androidx/core/view/NestedScrollingParent3

It is interfaces that inherit one from another and I was not sure if that was google's breaking change or C# limitations or binding tooling issue.

The culprit are changes in AndroidX.Core and i simply could not solve some build errors, but this way. I might overlooked something. I will try to redo those changes. Maybe some time off will help me or if you could take a look...

I will try to fix thoses over the weekend

@jpobst
Copy link
Contributor

jpobst commented Nov 4, 2021

The issue appears to be that core-1.6.0.aar is compiled to contain parameter names, however core-1.7.0.aar is not. We do enumification for a few places like for axes in NestedScrollingParent.onNestedScrollAccepted (...):

https://github.com/xamarin/AndroidX/blob/main/source/androidx.core/core/Transforms/EnumMethods.xml#L47-L50

Because these are based off parameter names which no longer exist, they no longer match and are no longer being applied.

The good news is we have already have a Metadata.ParameterNames.xml that can fix the parameter names, and it runs before enumification.

The issue is that these transforms modify the parameter managedName instead of name, which is what the enumification process is looking for. Although managedName is generally what should be used, in this case we can abuse it and use name instead. This will both rename the parameter in the bindings as well as change the api.xml so that subsequent fixups looking for name will work.

Replacing every "managedName" with "name" in Metadata.ParameterNames.xml will allow things to continue working the same as before, avoiding any compatibility breaking.

@moljac
Copy link
Contributor

moljac commented Nov 9, 2021

attempt to fix parameters with corrected paths for JavaSourceJar and JavaDocJar

  <ItemGroup>
    @foreach (var art in @Model.MavenArtifacts)
    {
    <JavaSourceJar
          Include="..\..\externals\@(art.MavenGroupId)\@(art.MavenArtifactId)-sources.jar"
          Condition="Exists('..\..\externals\@(art.MavenGroupId)\@(art.MavenArtifactId)-sources.jar')"
          />
    <JavaDocJar
          Include="..\..\externals\@(art.MavenGroupId)\@(art.MavenArtifactId)-javadoc.jar"
          Condition="Exists('..\..\externals\@(art.MavenGroupId)\@(art.MavenArtifactId)-javadoc.jar')"
          />
    }
  </ItemGroup>

fails with following error:

/Library/Frameworks/Xamarin.Android.framework/Libraries/xbuild/Xamarin/Android/Xamarin.Android.Bindings.ClassParse.targets(30,5): error XACLP7004: System.ArgumentException: Directory '//Users/Shared/Projects/d/X/AX/wsu-20211101/generated/androidx.databinding.databinding-common/obj/Release/monoandroid9.0/javadocs/databinding-common-javadoc/' does not appear to be an android doc reference directory. [/Users/Shared/Projects/d/X/AX/wsu-20211101/generated/androidx.databinding.databinding-common/androidx.databinding.databinding-common.csproj]
/Library/Frameworks/Xamarin.Android.framework/Libraries/xbuild/Xamarin/Android/Xamarin.Android.Bindings.ClassParse.targets(30,5): error XACLP7004:    at Xamarin.Android.Tools.Bytecode.AndroidDocScraper..ctor(String dir, String patternHead, String resetPatternHead, String parameterPairSplitter, Boolean continuousParamLines, String openMethod, String paramSep, String closeMethod, String postCloseMethodParens) in /Users/builder/azdo/_work/1/s/xamarin-android/external/Java.Interop/src/Xamarin.Android.Tools.Bytecode/JavaDocumentScraper.cs:line 168 [/Users/Shared/Projects/d/X/AX/wsu-20211101/generated/androidx.databinding.databinding-common/androidx.databinding.databinding-common.csproj]
/Library/Frameworks/Xamarin.Android.framework/Libraries/xbuild/Xamarin/Android/Xamarin.Android.Bindings.ClassParse.targets(30,5): error XACLP7004:    at Xamarin.Android.Tools.Bytecode.AndroidDocScraper..ctor(String dir, String patternHead, String resetPatternHead, String parameterPairSplitter, Boolean continuousParamLines) in /Users/builder/azdo/_work/1/s/xamarin-android/external/Java.Interop/src/Xamarin.Android.Tools.Bytecode/JavaDocumentScraper.cs:line 145 [/Users/Shared/Projects/d/X/AX/wsu-20211101/generated/androidx.databinding.databinding-common/androidx.databinding.databinding-common.csproj]
/Library/Frameworks/Xamarin.Android.framework/Libraries/xbuild/Xamarin/Android/Xamarin.Android.Bindings.ClassParse.targets(30,5): error XACLP7004:    at Xamarin.Android.Tools.Bytecode.DroidDocScraper..ctor(String dir) in /Users/builder/azdo/_work/1/s/xamarin-android/external/Java.Interop/src/Xamarin.Android.Tools.Bytecode/JavaDocumentScraper.cs:line 41 [/Users/Shared/Projects/d/X/AX/wsu-20211101/generated/androidx.databinding.databinding-common/androidx.databinding.databinding-common.csproj]
/Library/Frameworks/Xamarin.Android.framework/Libraries/xbuild/Xamarin/Android/Xamarin.Android.Bindings.ClassParse.targets(30,5): error XACLP7004:    at Xamarin.Android.Tools.Bytecode.ClassPath.CreateDocScraper(String src) in /Users/builder/azdo/_work/1/s/xamarin-android/external/Java.Interop/src/Xamarin.Android.Tools.Bytecode/ClassPath.cs:line 249 [/Users/Shared/Projects/d/X/AX/wsu-20211101/generated/androidx.databinding.databinding-common/androidx.databinding.databinding-common.csproj]
/Library/Frameworks/Xamarin.Android.framework/Libraries/xbuild/Xamarin/Android/Xamarin.Android.Bindings.ClassParse.targets(30,5): error XACLP7004:    at Xamarin.Android.Tools.Bytecode.ClassPath.FixupParametersFromDocs(XElement api, String path) in /Users/builder/azdo/_work/1/s/xamarin-android/external/Java.Interop/src/Xamarin.Android.Tools.Bytecode/ClassPath.cs:line 260 [/Users/Shared/Projects/d/X/AX/wsu-20211101/generated/androidx.databinding.databinding-common/androidx.databinding.databinding-common.csproj]
/Library/Frameworks/Xamarin.Android.framework/Libraries/xbuild/Xamarin/Android/Xamarin.Android.Bindings.ClassParse.targets(30,5): error XACLP7004:    at Xamarin.Android.Tools.Bytecode.ClassPath.FixupParametersFromDocs(XElement api) in /Users/builder/azdo/_work/1/s/xamarin-android/external/Java.Interop/src/Xamarin.Android.Tools.Bytecode/ClassPath.cs:line 241 [/Users/Shared/Projects/d/X/AX/wsu-20211101/generated/androidx.databinding.databinding-common/androidx.databinding.databinding-common.csproj]
/Library/Frameworks/Xamarin.Android.framework/Libraries/xbuild/Xamarin/Android/Xamarin.Android.Bindings.ClassParse.targets(30,5): error XACLP7004:    at Xamarin.Android.Tools.Bytecode.ClassPath.ToXElement() in /Users/builder/azdo/_work/1/s/xamarin-android/external/Java.Interop/src/Xamarin.Android.Tools.Bytecode/ClassPath.cs:line 314 [/Users/Shared/Projects/d/X/AX/wsu-20211101/generated/androidx.databinding.databinding-common/androidx.databinding.databinding-common.csproj]
/Library/Frameworks/Xamarin.Android.framework/Libraries/xbuild/Xamarin/Android/Xamarin.Android.Bindings.ClassParse.targets(30,5): error XACLP7004:    at Xamarin.Android.Tools.Bytecode.ClassPath.SaveXmlDescription(TextWriter textWriter) in /Users/builder/azdo/_work/1/s/xamarin-android/external/Java.Interop/src/Xamarin.Android.Tools.Bytecode/ClassPath.cs:line 333 [/Users/Shared/Projects/d/X/AX/wsu-20211101/generated/androidx.databinding.databinding-common/androidx.databinding.databinding-common.csproj]
/Library/Frameworks/Xamarin.Android.framework/Libraries/xbuild/Xamarin/Android/Xamarin.Android.Bindings.ClassParse.targets(30,5): error XACLP7004:    at Xamarin.Android.Tasks.ClassParse.RunTask() [/Users/Shared/Projects/d/X/AX/wsu-20211101/generated/androidx.databinding.databinding-common/androidx.databinding.databinding-common.csproj]
/Library/Frameworks/Xamarin.Android.framework/Libraries/xbuild/Xamarin/Android/Xamarin.Android.Bindings.ClassParse.targets(30,5): error XACLP7004:    at Microsoft.Android.Build.Tasks.AndroidTask.Execute() in /Users/builder/azdo/_work/1/s/xamarin-android/external/xamarin-android-tools/src/Microsoft.Android.Build.BaseTasks/AndroidTask.cs:line 17 [/Users/Shared/Projects/d/X/AX/wsu-20211101/generated/androidx.databinding.databinding-common/androidx.databinding.databinding-common.csproj]

Seems to be single project/artifact.

@moljac moljac requested a review from jpobst November 15, 2021 10:24
Copy link
Contributor

@jpobst jpobst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like the ParameterNames.Metadata.xml for AndroidX.Core isn't very complete. There are still a lot of parameter names missing, resulting in actual API breaks like:

Type Changed: AndroidX.Core.View.WindowInsetsControllerCompat.ControllableInsetsChangedEventArgs

Removed properties:

public WindowInsetsControllerCompat Controller { get; }
public int TypeMask { get; }

Added properties:

public WindowInsetsControllerCompat P0 { get; }
public int P1 { get; }

Maybe we should try using the JavaSourceJar for only this library to see if it gets us back to where we were before.


I think once we get AndroidX.Core back to normal, we also won't need the Additions added for things like OnNestedScrollAccepted.

@moljac
Copy link
Contributor

moljac commented Nov 16, 2021

Maybe we should try using the JavaSourceJar for only this library to see if it gets us back to where we were before.

OK. Let me try that

conceptdev added a commit that referenced this pull request Nov 18, 2021
## Depends on #415 - do not merge before that
@jpobst
Copy link
Contributor

jpobst commented Nov 18, 2021

Maybe we should try using the JavaSourceJar for only this library to see if it gets us back to where we were before.

With JavaSourceJar:

From the diff, it does not look like JavaSourceJar got enabled. It appears that JavaDocJar got enabled instead and androidx.core does not provide a JavaDoc artifact. I would also suggest only turning it on for androidx.core unless other packages need it, as it is likely to cause other breaking changes.


Properties:

public WindowInsetsControllerCompat Controller { get; }
public int TypeMask { get; }

seem to be removed:

This is because they are properties automatically generated for EventArgs from the listener method parameters:

public interface OnControllableInsetsChangedListener
{
    void onControllableInsetsChanged(@NonNull final WindowInsetsControllerCompat p0, final int p1);
}

Without the parameter names, these properties get renamed:

Type Changed: AndroidX.Core.View.WindowInsetsControllerCompat.ControllableInsetsChangedEventArgs

Removed properties:

public WindowInsetsControllerCompat Controller { get; }
public int TypeMask { get; }

Added properties:

public WindowInsetsControllerCompat P0 { get; }
public int P1 { get; }

@moljac
Copy link
Contributor

moljac commented Nov 22, 2021

JavaSourceJar is turned on only for androidx.core, but api-diff looks almost the same:

https://github.com/xamarin/AndroidX/blob/create-pull-request/patch-1635746820/source/AndroidXProject.cshtml#L74-L91

@moljac
Copy link
Contributor

moljac commented Nov 22, 2021

so many changes on CI in last 2 weeks. Seems like macosx-latest does not work for XCode 13.1.

Fixing that

@moljac
Copy link
Contributor

moljac commented Nov 29, 2021

Seems that methods were moved to other interfaces and there is no other removed stuff in Core api-diff!!

Namespace AndroidX.Core.View

Type Changed: AndroidX.Core.View.INestedScrollingParent

Removed methods:

public virtual void OnNestedScrollAccepted (Android.Views.View child, Android.Views.View target, Android.Views.ScrollAxis axes);
public virtual bool OnStartNestedScroll (Android.Views.View child, Android.Views.View target, Android.Views.ScrollAxis axes);

Type Changed: AndroidX.Core.View.INestedScrollingParent2

Modified methods:

-public abstract void OnNestedScrollAccepted (Android.Views.View child, Android.Views.View target, Android.Views.ScrollAxis axes, int type)
+public abstract void OnNestedScrollAccepted (Android.Views.View child, Android.Views.View target, Android.Views.ScrollAxis axes, int _type)
-public abstract bool OnStartNestedScroll (Android.Views.View child, Android.Views.View target, Android.Views.ScrollAxis axes, int type)
+public abstract bool OnStartNestedScroll (Android.Views.View child, Android.Views.View target, Android.Views.ScrollAxis axes, int _type)

Type Changed: AndroidX.Core.View.INestedScrollingParent3

Modified methods:

-public abstract void OnNestedScroll (Android.Views.View target, int dxConsumed---p1---, int dyConsumed---p2---, int dxUnconsumed---p3---, int dyUnconsumed---p4---, int type---p5---, int[] consumed---p6---)
+public abstract void OnNestedScroll (Android.Views.View p0, int +++dxConsumed+++p1, int +++dyConsumed+++p2, int +++dxUnconsumed+++p3, int +++dyUnconsumed+++p4, int +++type+++p5, int[] +++consumed+++p6)

@moljac moljac requested a review from jpobst November 29, 2021 10:54
@moljac
Copy link
Contributor

moljac commented Dec 1, 2021

merging and will bump for tomorrow

@moljac moljac merged commit 4e40914 into main Dec 1, 2021
@moljac moljac deleted the create-pull-request/patch-1635746820 branch December 1, 2021 21:26
@conceptdev
Copy link
Contributor

@moljac @jpobst the Xamarin.AndroidX.Window.WindowJava beta04 from this PR results in a build error:

10>C:\GitHubMicrosoft\surface-duo-sdk-xamarin-samples\WindowManager\obj\Debug\110\lp\54\jl\res\values\values.xml(114): error APT2260: resource android:attr/lStar not found.
10>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(157,3): error APT2062: failed linking references.

The 1.0.0.3-beta03 build from #418 works fine (although we never merged this to main).

Googling turned up this StackOverflow post which suggests the issue is related to a version of Xamarin.AndroidX.Core (1.6 vs 1.7 possibly) but I can't be sure this is the problem. Any thoughts?

@moljac
Copy link
Contributor

moljac commented Dec 3, 2021

@moljac @jpobst the Xamarin.AndroidX.Window.WindowJava beta04 from this PR results in a build error:

10>C:\GitHubMicrosoft\surface-duo-sdk-xamarin-samples\WindowManager\obj\Debug\110\lp\54\jl\res\values\values.xml(114): error APT2260: resource android:attr/lStar not found.
10>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Aapt2.targets(157,3): error APT2062: failed linking references.

I have never seen this.

The 1.0.0.3-beta03 build from #418 works fine (although we never merged this to main).

Googling turned up this StackOverflow post which suggests the issue is related to a version of Xamarin.AndroidX.Core (1.6 vs 1.7 possibly) but I can't be sure this is the problem. Any thoughts?

We had issues with Xamarin.AndroidX.Core 1.7., but I doubt this is related.

Googling a bit

https://exerror.com/solved-aapt-error-resource-androidattr-lstar-not-found-in-android/

https://www.nuget.org/packages/Xamarin.AndroidX.Core.Core.Ktx/1.7.0.1

https://www.nuget.org/packages/Xamarin.AndroidX.Core.Core.Ktx/1.6.0.3

If you are using androidx.core:core-ktx:+ then this will find the latest version of androidx.core:core-ktx:+ and the latest one is 1.7.0 and the latest version needs the Android 31 compile SDK. So that You are facing this issue. Here is Two Possible Solution use a specific version, use androidx.core:core-ktx:${version} instead of androidx.core:core-ktx:+ upgrade the compile SDK to Android 31

@conceptdev
Copy link
Contributor

🤦‍♂️ thanks @moljac - first time I've hit an API requiring API 31... I should have thought to try that before bothering you.

The beta04 binding seems to work now (I've tested with one sample) - will update the rest but I don't anticipate any other problems.

Thank you!

@moljac
Copy link
Contributor

moljac commented Dec 3, 2021

🤦‍♂️ thanks @moljac - first time I've hit an API requiring API 31... I should have thought to try that before bothering you.

You did not bother. Too bad I don't have time to use all those packages.

The beta04 binding seems to work now (I've tested with one sample) - will update the rest but I don't anticipate any other problems.

Great news. Glad to hear that!

Thank you!

You are welcome. I hope next time I'll be faster with update[s].

@conceptdev
Copy link
Contributor

conceptdev commented Dec 3, 2021

Final comment - confirmed that the Surface Duo samples were updated and work fine

microsoft/surface-duo-sdk-xamarin-samples#32

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.

4 participants