Skip to content

Commit

Permalink
Bump Android X (xamarin#14101)
Browse files Browse the repository at this point in the history
* Bump a few Android X projects to fix incompatibilities

* Update DualScreen.Android.csproj

* - pin androidx versions

* - fix versioning

* - workaround fragment life cycle changes

* - remove content from page before re-using

* - fix accessibility namespaces

* - bump browser and pin Navigation.UI
  • Loading branch information
PureWeen authored and rotorgames committed Dec 9, 2021
1 parent 8660ec0 commit 432b0c8
Show file tree
Hide file tree
Showing 22 changed files with 73 additions and 26 deletions.
2 changes: 1 addition & 1 deletion .nuspec/Xamarin.Forms.AppLinks.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<group targetFramework="MonoAndroid10.0">
<dependency id="Xamarin.Firebase.AppIndexing" version="119.1.0"/>
<dependency id="Xamarin.AndroidX.Lifecycle.LiveData" version="2.2.0.4"/>
<dependency id="Xamarin.AndroidX.Legacy.Support.V4" version="1.0.0.6"/>
<dependency id="Xamarin.AndroidX.Legacy.Support.V4" version="1.0.0.7"/>
</group>
</dependencies>
<references>
Expand Down
4 changes: 2 additions & 2 deletions .nuspec/Xamarin.Forms.Visual.Material.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@
</group>

<group targetFramework="MonoAndroid10.0">
<dependency id="Xamarin.AndroidX.Lifecycle.LiveData" version="2.2.0.4" />
<dependency id="Xamarin.Google.Android.Material" version="1.2.1.1" />
<dependency id="Xamarin.AndroidX.Lifecycle.LiveData" version="[2.2.0.4,2.3)" />
<dependency id="Xamarin.Google.Android.Material" version="[1.2.1.1,1.3)" />
</group>
<group targetFramework="Xamarin.iOS10">
<dependency id="Xamarin.iOS.MaterialComponents" version="92.0.0"/>
Expand Down
17 changes: 12 additions & 5 deletions .nuspec/Xamarin.Forms.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,18 @@
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
<dependencies>
<group targetFramework="MonoAndroid10.0">
<dependency id="Xamarin.AndroidX.Lifecycle.LiveData" version="2.2.0.4" />
<dependency id="Xamarin.Google.Android.Material" version="1.2.1.1" />
<dependency id="Xamarin.AndroidX.Legacy.Support.V4" version="1.0.0.6" />
<dependency id="Xamarin.AndroidX.Browser" version="1.3.0" />
<dependency id="Xamarin.AndroidX.Navigation.UI" version="2.3.2.1" />
<dependency id="Xamarin.AndroidX.Lifecycle.LiveData" version="[2.2.0.4,2.3)" />
<dependency id="Xamarin.Google.Android.Material" version="[1.2.1.1,1.3)" />
<dependency id="Xamarin.AndroidX.Legacy.Support.V4" version="[1.0.0.7,1.1)" />
<dependency id="Xamarin.AndroidX.Browser" version="[1.3.0.5,1.4)" />

<!-- Because of a misspelled reference these all need to be explicitly included so the fixed version
is transitively loaded https://github.com/xamarin/AndroidX/issues/283#issuecomment-788103573 -->
<dependency id="Xamarin.AndroidX.Core" version="[1.3.2.3,1.4)" />
<dependency id="Xamarin.AndroidX.CustomView" version="[1.1.0.6,1.2)" />
<dependency id="Xamarin.AndroidX.Preference" version="[1.1.1.8,1.2)" />
<dependency id="Xamarin.AndroidX.RecyclerView" version="[1.1.0.8,1.2)" />
<dependency id="Xamarin.AndroidX.Navigation.UI" version="[2.3.2.1,2.4)" />
</group>
<group targetFramework="uap10.0.14393">
<dependency id="NETStandard.Library" version="2.0.1"/>
Expand Down
4 changes: 2 additions & 2 deletions DualScreen/DualScreen.Android/DualScreen.Android.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -115,9 +115,9 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.7" />
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.2.0.4" />
<PackageReference Include="Xamarin.Google.Android.Material" Version="1.2.1.1" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.6" />
</ItemGroup>
<ItemGroup>
<AndroidResource Include="Resources\values\colors.xml" />
Expand All @@ -126,4 +126,4 @@
<AndroidResource Include="Resources\values\styles.xml" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
</Project>
</Project>
4 changes: 2 additions & 2 deletions EmbeddingTestBeds/Embedding.Droid/Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<Project>
<ItemGroup>
<PackageReference Include="Xamarin.AndroidX.Browser" Version="1.3.0" />
<PackageReference Include="Xamarin.AndroidX.Browser" Version="1.3.0.5" />
<PackageReference Include="Xamarin.AndroidX.Palette" Version="1.0.0.1" />
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.1.0.1" />
<PackageReference Include="Xamarin.Google.Android.Material" Version="1.2.1.1" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.1" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.7" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'MonoAndroid10.0'">
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.2.0.4" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.6" />
<PackageReference Include="Xamarin.AndroidX.RecyclerView" Version="1.1.0.6" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.7" />
<PackageReference Include="Xamarin.AndroidX.RecyclerView" Version="1.1.0.8" />
<PackageReference Include="Xamarin.Google.Android.Material" Version="1.2.1.1" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
using Xamarin.Forms.ControlGallery.Android;
using Xamarin.Forms.Controls.Issues;
using Xamarin.Forms.Platform.Android;
using AndroidX.Core.View.Accessibiity;
using AndroidX.Core.View;
using AndroidX.Core.View.Accessibility;

[assembly: ExportEffect(typeof(ContentDescriptionEffectRenderer), ContentDescriptionEffect.EffectName)]
namespace Xamarin.Forms.ControlGallery.Android
Expand Down
4 changes: 2 additions & 2 deletions Xamarin.Forms.ControlGallery.Android/Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<Project>
<ItemGroup>
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.2.0.4" />
<PackageReference Include="Xamarin.AndroidX.Browser" Version="1.3.0" />
<PackageReference Include="Xamarin.AndroidX.Browser" Version="1.3.0.5" />
<PackageReference Include="Xamarin.Google.Android.Material" Version="1.2.1.1" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.6" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.7" />
<PackageReference Include="Xamarin.AndroidX.Palette" Version="1.0.0.6" />
</ItemGroup>
<Import Project="Nuget.Build.targets" />
Expand Down
4 changes: 2 additions & 2 deletions Xamarin.Forms.ControlGallery.Android/Nuget.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.1.0" />
<PackageReference Include="Xamarin.AndroidX.Browser" Version="1.3.0" />
<PackageReference Include="Xamarin.AndroidX.Browser" Version="1.3.0.5" />
<PackageReference Include="Xamarin.Google.Android.Material" Version="1.2.1.1" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.7" />
<PackageReference Include="Xamarin.AndroidX.Palette" Version="1.0.0" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -350,6 +350,11 @@
<PackageReference Include="Xam.Plugin.DeviceInfo">
<Version>3.0.2</Version>
</PackageReference>
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.7" />
<PackageReference Include="Xamarin.AndroidX.Core" Version="1.3.2.3" />
<PackageReference Include="Xamarin.AndroidX.CustomView" Version="1.1.0.6" />
<PackageReference Include="Xamarin.AndroidX.Preference" Version="1.1.1.8" />
<PackageReference Include="Xamarin.AndroidX.RecyclerView" Version="1.1.0.8" />
</ItemGroup>
<ItemGroup>
<AndroidAsset Include="Assets\fonts\ionicons.ttf">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,10 @@ Button BuildClearButton()
{
Items[0].Items.Clear();
Items.Clear();
ContentPage parent = _stackContent.Parent as ContentPage;
parent.Content = null;
AddTopTab(TopTab).Content = _stackContent;
CurrentItem = Items.Last();
Expand Down
2 changes: 1 addition & 1 deletion Xamarin.Forms.DualScreen/Xamarin.Forms.DualScreen.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,6 @@
<ItemGroup Condition="'$(TargetFramework)' == 'MonoAndroid10.0'">
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.2.0.4" />
<PackageReference Include="Xamarin.Google.Android.Material" Version="1.2.1.1" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.6" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.7" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<ItemGroup>
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.2.0.4" />
<PackageReference Include="Xamarin.Google.Android.Material" Version="1.2.1.1" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.6" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.7" />
<PackageReference Include="Xamarin.GooglePlayServices.Maps" Version="117.0.0" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,6 @@
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'MonoAndroid10.0'">
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.2.0.4" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.6" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.7" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
using Android.Views.Accessibility;
using AndroidX.AppCompat.Widget;
using AndroidX.Core.View;
using AndroidX.Core.View.Accessibiity;
using AndroidX.Core.View.Accessibility;
using Xamarin.Forms.Platform.Android.FastRenderers;

namespace Xamarin.Forms.Platform.Android
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@ protected override void OnCreate(Bundle savedInstanceState)
// because we're rebuilding everything from scratch. This saves a bit of memory
// and prevents loading errors from child fragment managers
savedInstanceState?.Remove("android:support:fragments");
savedInstanceState?.Remove("androidx.lifecycle.BundlableSavedStateRegistry.key");
}

Profile.FramePartition("Xamarin.Android.OnCreate");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,18 @@

namespace Xamarin.Forms.Platform.Android.AppCompat
{
#pragma warning disable CS0618 // Type or member is obsolete
internal class FormsFragmentPagerAdapter<T> : FragmentPagerAdapter where T : Page
#pragma warning restore CS0618 // Type or member is obsolete
{
MultiPage<T> _page;
FragmentManager _fragmentManager;
List<Fragment> _fragments;
bool _disposed;

#pragma warning disable CS0618 // Type or member is obsolete
public FormsFragmentPagerAdapter(MultiPage<T> page, FragmentManager fragmentManager) : base(fragmentManager, FragmentStatePagerAdapter.BehaviorResumeOnlyCurrentFragment)
#pragma warning restore CS0618 // Type or member is obsolete
{
_page = page;
_fragmentManager = fragmentManager;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
using Android.Views.Accessibility;
using AndroidX.Core.View.Accessibiity;
using AndroidX.Core.View.Accessibility;
using Xamarin.Forms.Platform.Android.FastRenderers;

namespace Xamarin.Forms.Platform.Android
Expand Down
22 changes: 22 additions & 0 deletions Xamarin.Forms.Platform.Android/Renderers/ShellContentFragment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,33 @@ namespace Xamarin.Forms.Platform.Android
{
public class ShellContentFragment : Fragment, AndroidAnimation.IAnimationListener, IShellObservableFragment, IAppearanceObserver
{
// AndroidX.Fragment packaged stopped calling CreateAnimation for every call
// of creating a fragment
bool _isAnimating = false;

#region IAnimationListener

void AndroidAnimation.IAnimationListener.OnAnimationEnd(AndroidAnimation animation)
{
View?.SetLayerType(LayerType.None, null);
AnimationFinished?.Invoke(this, EventArgs.Empty);
_isAnimating = false;
}

public override void OnResume()
{
base.OnResume();
if (!_isAnimating)
{
View?.SetLayerType(LayerType.None, null);
AnimationFinished?.Invoke(this, EventArgs.Empty);
}
}


public override void OnViewStateRestored(Bundle savedInstanceState)
{
base.OnViewStateRestored(savedInstanceState);
}

void AndroidAnimation.IAnimationListener.OnAnimationRepeat(AndroidAnimation animation)
Expand Down Expand Up @@ -75,6 +96,7 @@ public ShellContentFragment(IShellContext shellContext, Page page)
public override AndroidAnimation OnCreateAnimation(int transit, bool enter, int nextAnim)
{
var result = base.OnCreateAnimation(transit, enter, nextAnim);
_isAnimating = true;

if (result == null && nextAnim != 0)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,17 @@

namespace Xamarin.Forms.Platform.Android
{
#pragma warning disable CS0618 // Type or member is obsolete
internal class ShellFragmentPagerAdapter : FragmentPagerAdapter
#pragma warning restore CS0618 // Type or member is obsolete
{
bool _disposed;
ShellSection _shellSection;
IShellSectionController SectionController => (IShellSectionController)_shellSection;

#pragma warning disable CS0618 // Type or member is obsolete
public ShellFragmentPagerAdapter(ShellSection shellSection, FragmentManager fragmentManager) : base(fragmentManager, FragmentStatePagerAdapter.BehaviorResumeOnlyCurrentFragment)
#pragma warning restore CS0618 // Type or member is obsolete
{
_shellSection = shellSection;
SectionController.ItemsCollectionChanged += OnItemsCollectionChanged;
Expand Down
2 changes: 1 addition & 1 deletion Xamarin.Forms.Platform.Android/Renderers/ShellRenderer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@ protected virtual void SwitchFragment(FragmentManager manager, AView targetView,
FragmentTransaction transaction = manager.BeginTransactionEx();

if (animate)
transaction.SetTransitionEx((int)global::Android.App.FragmentTransit.EnterMask);
transaction.SetTransitionEx((int)global::Android.App.FragmentTransit.FragmentOpen);

transaction.ReplaceEx(_frameLayout.Id, fragment);
transaction.CommitAllowingStateLossEx();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@
<ItemGroup>
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.2.0.4" />
<PackageReference Include="Xamarin.Google.Android.Material" Version="1.2.1.1" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.7" />
<PackageReference Include="Xamarin.AndroidX.Navigation.UI" Version="2.3.2.1" />
<PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.6" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Xamarin.Forms.Core\Xamarin.Forms.Core.csproj">
Expand Down

0 comments on commit 432b0c8

Please sign in to comment.