diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs index 3f1c71828e6..639e05fcb9d 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BuildTest.cs @@ -983,24 +983,13 @@ public void BuildAfterAddingNuget () //This test validates the _CleanIntermediateIfNeeded target [Test] - [Category ("DotNetIgnore")] // Xamarin.Forms version is too old, uses net45 MSBuild tasks [NonParallelizable] public void BuildAfterUpgradingNuget () { var proj = new XamarinAndroidApplicationProject (); - proj.MainActivity = proj.DefaultMainActivity.Replace ("public class MainActivity : Activity", "public class MainActivity : Xamarin.Forms.Platform.Android.FormsAppCompatActivity"); + proj.MainActivity = proj.DefaultMainActivity.Replace ("public class MainActivity : Activity", "public class MainActivity : AndroidX.AppCompat.App.AppCompatActivity"); - proj.PackageReferences.Add (KnownPackages.XamarinForms_2_3_4_231); - proj.PackageReferences.Add (KnownPackages.AndroidSupportV4_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportCompat_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportCoreUI_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportCoreUtils_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportDesign_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportFragment_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportMediaCompat_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportV7AppCompat_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportV7CardView_27_0_2_1); - proj.PackageReferences.Add (KnownPackages.SupportV7MediaRouter_27_0_2_1); + proj.PackageReferences.Add (KnownPackages.AndroidXAppCompat); using (var b = CreateApkBuilder (Path.Combine ("temp", TestContext.CurrentContext.Test.Name))) { //[TearDown] will still delete if test outcome successful, I need logs if assertions fail but build passes @@ -1010,7 +999,7 @@ public void BuildAfterUpgradingNuget () if (Directory.Exists (projectDir)) Directory.Delete (projectDir, true); Assert.IsTrue (b.Build (proj), "first build should have succeeded."); - Assert.IsFalse (b.Output.IsTargetSkipped ("_CleanIntermediateIfNeeded"), "`_CleanIntermediateIfNeeded` should have run!"); + Assert.IsFalse (b.Output.IsTargetSkipped ("_CleanIntermediateIfNeeded"), "`_CleanIntermediateIfNeeded` should have run for the first build!"); var nugetStamp = Path.Combine (Root, b.ProjectDirectory, proj.IntermediateOutputPath, "stamp", "_CleanIntermediateIfNeeded.stamp"); FileAssert.Exists (nugetStamp, "`_CleanIntermediateIfNeeded` did not create stamp file!"); @@ -1019,12 +1008,12 @@ public void BuildAfterUpgradingNuget () proj.PackageReferences.Clear (); //NOTE: we can get all the other dependencies transitively, yay! - proj.PackageReferences.Add (KnownPackages.XamarinForms_4_0_0_425677); + proj.PackageReferences.Add (KnownPackages.AndroidXAppCompat_1_6_0_1); b.Save (proj, doNotCleanupOnUpdate: true); Assert.IsTrue (b.Build (proj), "second build should have succeeded."); - Assert.IsFalse (b.Output.IsTargetSkipped ("_CleanIntermediateIfNeeded"), "`_CleanIntermediateIfNeeded` should have run!"); + Assert.IsFalse (b.Output.IsTargetSkipped ("_CleanIntermediateIfNeeded"), "`_CleanIntermediateIfNeeded` should have run for the second build!"); FileAssert.Exists (nugetStamp, "`_CleanIntermediateIfNeeded` did not create stamp file!"); - Assert.IsTrue (StringAssertEx.ContainsText (b.LastBuildOutput, "Refreshing Xamarin.Android.Support.v7.AppCompat.dll"), "`ResolveLibraryProjectImports` should not skip `Xamarin.Android.Support.v7.AppCompat.dll`!"); + Assert.IsTrue (StringAssertEx.ContainsText (b.LastBuildOutput, "Refreshing Xamarin.AndroidX.AppCompat.dll"), "`ResolveLibraryProjectImports` should not skip `Xamarin.AndroidX.AppCompat.dll`!"); FileAssert.Exists (build_props, "build.props should exist after second build."); proj.MainActivity = proj.MainActivity.Replace ("clicks", "CLICKS"); diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownPackages.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownPackages.cs index 6fb9b090e2e..007ff8d4172 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownPackages.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Android/KnownPackages.cs @@ -263,6 +263,11 @@ public static class KnownPackages Version = "1.1.0.1", TargetFramework = "MonoAndroid10", }; + public static Package AndroidXAppCompat_1_6_0_1 = new Package { + Id = "Xamarin.AndroidX.AppCompat", + Version = "1.6.0.1", + TargetFramework = "MonoAndroid10", + }; public static Package AndroidXBrowser = new Package { Id = "Xamarin.AndroidX.Browser", Version = "1.2.0.1", diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index 16f631f0d21..6c88e3b8958 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -965,6 +965,7 @@ because xbuild doesn't support framework reference assemblies. True False <_AndroidBuildPropertiesCacheExists Condition=" Exists('$(_AndroidBuildPropertiesCache)') ">True + <_NuGetAssetsFile Condition=" Exists('$(ProjectAssetsFile)') ">$(ProjectAssetsFile) <_NuGetAssetsFile Condition=" Exists('$(ProjectLockFile)') ">$(ProjectLockFile) <_NuGetAssetsFile Condition=" '$(_NuGetAssetsFile)' == '' and Exists('packages.config') ">packages.config <_NuGetAssetsTimestamp Condition=" '$(_NuGetAssetsFile)' != '' ">$([System.IO.File]::GetLastWriteTime('$(_NuGetAssetsFile)').Ticks)