Skip to content

Commit

Permalink
Merge pull request #17216 from unoplatform/dev/xygu/20240618/resource…
Browse files Browse the repository at this point in the history
…s-resolution

fix: non-FE resources resolution
  • Loading branch information
jeromelaban committed Jul 8, 2024
2 parents f6b8122 + b3a30d9 commit 9cdf3de
Show file tree
Hide file tree
Showing 36 changed files with 384 additions and 137 deletions.
20 changes: 12 additions & 8 deletions src/SamplesApp/SamplesApp.Shared/App.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,22 @@
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.ThemeDictionaries>
<!-- GlobalThemeResource_Test01 used in ResourceMarkupTest_Setup -->

<ResourceDictionary x:Key="HighContrast">
<SolidColorBrush x:Key="GlobalThemeResource_Test01"
Color="Red" />
<SolidColorBrush x:Key="GlobalThemeResource_Test01" Color="Red" />
</ResourceDictionary>
<ResourceDictionary x:Key="Default">
<SolidColorBrush x:Key="GlobalThemeResource_Test01"
Color="Gray" />
<SolidColorBrush x:Key="GlobalThemeResource_Test01" Color="Gray" />
<x:String x:Key="GlobalThemeResource_TestText">global App.Resources-default</x:String>
</ResourceDictionary>
<ResourceDictionary x:Key="Dark">
<SolidColorBrush x:Key="GlobalThemeResource_Test01"
Color="Blue" />
<SolidColorBrush x:Key="GlobalThemeResource_Test01" Color="Blue" />
<x:String x:Key="GlobalThemeResource_TestText">global App.Resources-dark</x:String>
</ResourceDictionary>
<ResourceDictionary x:Key="Light">
<SolidColorBrush x:Key="GlobalThemeResource_Test01"
Color="Yellow" />
<SolidColorBrush x:Key="GlobalThemeResource_Test01" Color="Yellow" />
<x:String x:Key="GlobalThemeResource_TestText">global App.Resources-light</x:String>
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>

Expand Down Expand Up @@ -164,6 +165,9 @@
Value="41" />
</Style>

<!-- used by ResourceMarkupTest_Setup -->
<x:String x:Key="GlobalStaticResource_TestText">global App.Resources</x:String>

</ResourceDictionary>

</Application.Resources>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -373,6 +373,7 @@ private static PortableExecutableReference[] BuildUnoReferences()
var availableTargets = new[] {
Path.Combine("Uno.UI.Skia", configuration, "8.0"),
Path.Combine("Uno.UI.Reference", configuration, "net8.0"),
Path.Combine("Uno.UI.Tests", configuration, "net8.0"),
};

var unoUIBase = Path.Combine(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ namespace Uno.UI.SourceGenerators.Tests.XamlCodeGeneratorTests;
public class Given_HotReloadEnabledInBuild
{
// Specify this centrally for all tests that rely on Uno5 or above
private static readonly ReferenceAssemblies _net7Uno5Refs = ReferenceAssemblies.Net.Net80.AddPackages(ImmutableArray.Create(new PackageIdentity("Uno.WinUI", "5.0.118")));
private static readonly ReferenceAssemblies _net8Uno5Refs = ReferenceAssemblies.Net.Net80.AddPackages([new PackageIdentity("Uno.WinUI", "5.0.118")]);

[TestMethod]
public async Task SetBaseUriIncludedInOutputForFrameworkElements()
Expand Down Expand Up @@ -57,7 +57,7 @@ public MainPage()
"""
}
},
ReferenceAssemblies = _net7Uno5Refs,
ReferenceAssemblies = _net8Uno5Refs,
DisableBuildReferences = true,
GlobalConfigOverride = configOverride,
}.AddGeneratedSources();
Expand Down Expand Up @@ -111,8 +111,7 @@ public MainPage()
"""
}
},
ReferenceAssemblies = _net7Uno5Refs,
DisableBuildReferences = true,
ReferenceAssemblies = _net8Uno5Refs,
GlobalConfigOverride = configOverride,
}.AddGeneratedSources();

Expand Down Expand Up @@ -162,8 +161,7 @@ public MainPage()
"""
}
},
ReferenceAssemblies = _net7Uno5Refs,
DisableBuildReferences = true,
ReferenceAssemblies = _net8Uno5Refs,
GlobalConfigOverride = configOverride,
}.AddGeneratedSources();

Expand Down Expand Up @@ -222,8 +220,7 @@ public MainPage()
"""
}
},
ReferenceAssemblies = _net7Uno5Refs,
DisableBuildReferences = true,
ReferenceAssemblies = _net8Uno5Refs,
GlobalConfigOverride = configOverride,
}.AddGeneratedSources();

Expand All @@ -246,7 +243,7 @@ public async Task SetOriginalSourceLocationInOutputForTopLevelResourceDictionari

var test = new Verify.Test(xamlFile)
{
ReferenceAssemblies = _net7Uno5Refs,
ReferenceAssemblies = _net8Uno5Refs,
DisableBuildReferences = true,
GlobalConfigOverride = configOverride,
}.AddGeneratedSources();
Expand Down Expand Up @@ -332,8 +329,7 @@ public MainPage()
"""
}
},
ReferenceAssemblies = _net7Uno5Refs,
DisableBuildReferences = true,
ReferenceAssemblies = _net8Uno5Refs,
GlobalConfigOverride = configOverride,
}.AddGeneratedSources();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ public static void Initialize()
if (!_initialized)
{
_initialized = true;
global::Uno.UI.GlobalStaticResources.Initialize();
global::Uno.UI.Toolkit.GlobalStaticResources.Initialize();
global::Uno.UI.GlobalStaticResources.RegisterDefaultStyles();
global::Uno.UI.GlobalStaticResources.Initialize();
global::Uno.UI.Toolkit.GlobalStaticResources.RegisterDefaultStyles();
global::Uno.UI.GlobalStaticResources.RegisterResourceDictionariesBySource();
global::Uno.UI.GlobalStaticResources.RegisterDefaultStyles();
global::Uno.UI.Toolkit.GlobalStaticResources.RegisterResourceDictionariesBySource();
global::Uno.UI.GlobalStaticResources.RegisterResourceDictionariesBySource();
}
}
public static void RegisterDefaultStyles()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -516,8 +516,8 @@ void IMainPage_Bindings.Update()
void IMainPage_Bindings.UpdateResources()
{
var owner = Owner;
owner._component_0.UpdateResourceBindings();
owner._component_1.UpdateResourceBindings();
owner._component_0.UpdateResourceBindings(resourceContextProvider: null);
owner._component_1.UpdateResourceBindings(resourceContextProvider: null);
}
void IMainPage_Bindings.StopTracking()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ public static void Initialize()
if (!_initialized)
{
_initialized = true;
global::Uno.UI.GlobalStaticResources.Initialize();
global::Uno.UI.Toolkit.GlobalStaticResources.Initialize();
global::Uno.UI.GlobalStaticResources.RegisterDefaultStyles();
global::Uno.UI.GlobalStaticResources.Initialize();
global::Uno.UI.Toolkit.GlobalStaticResources.RegisterDefaultStyles();
global::Uno.UI.GlobalStaticResources.RegisterResourceDictionariesBySource();
global::Uno.UI.GlobalStaticResources.RegisterDefaultStyles();
global::Uno.UI.Toolkit.GlobalStaticResources.RegisterResourceDictionariesBySource();
global::Uno.UI.GlobalStaticResources.RegisterResourceDictionariesBySource();
}
}
public static void RegisterDefaultStyles()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ void IMainPage_Bindings.Update()
void IMainPage_Bindings.UpdateResources()
{
var owner = Owner;
owner._component_0.UpdateResourceBindings();
owner._component_0.UpdateResourceBindings(resourceContextProvider: null);
}
void IMainPage_Bindings.StopTracking()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ public static void Initialize()
if (!_initialized)
{
_initialized = true;
global::Uno.UI.GlobalStaticResources.Initialize();
global::Uno.UI.Toolkit.GlobalStaticResources.Initialize();
global::Uno.UI.GlobalStaticResources.RegisterDefaultStyles();
global::Uno.UI.GlobalStaticResources.Initialize();
global::Uno.UI.Toolkit.GlobalStaticResources.RegisterDefaultStyles();
global::Uno.UI.GlobalStaticResources.RegisterResourceDictionariesBySource();
global::Uno.UI.GlobalStaticResources.RegisterDefaultStyles();
global::Uno.UI.Toolkit.GlobalStaticResources.RegisterResourceDictionariesBySource();
global::Uno.UI.GlobalStaticResources.RegisterResourceDictionariesBySource();
}
}
public static void RegisterDefaultStyles()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ void IMainPage_Bindings.Update()
void IMainPage_Bindings.UpdateResources()
{
var owner = Owner;
owner._component_0.UpdateResourceBindings();
owner._component_0.UpdateResourceBindings(resourceContextProvider: null);
}
void IMainPage_Bindings.StopTracking()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ public static void Initialize()
if (!_initialized)
{
_initialized = true;
global::Uno.UI.GlobalStaticResources.Initialize();
global::Uno.UI.Toolkit.GlobalStaticResources.Initialize();
global::Uno.UI.GlobalStaticResources.RegisterDefaultStyles();
global::Uno.UI.GlobalStaticResources.Initialize();
global::Uno.UI.Toolkit.GlobalStaticResources.RegisterDefaultStyles();
global::Uno.UI.GlobalStaticResources.RegisterResourceDictionariesBySource();
global::Uno.UI.GlobalStaticResources.RegisterDefaultStyles();
global::Uno.UI.Toolkit.GlobalStaticResources.RegisterResourceDictionariesBySource();
global::Uno.UI.GlobalStaticResources.RegisterResourceDictionariesBySource();
}
}
public static void RegisterDefaultStyles()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ void IMainPage_Bindings.Update()
void IMainPage_Bindings.UpdateResources()
{
var owner = Owner;
owner._component_0.UpdateResourceBindings();
owner._component_0.UpdateResourceBindings(resourceContextProvider: null);
}
void IMainPage_Bindings.StopTracking()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,8 +178,8 @@ void IMainPage_Bindings.Update()
void IMainPage_Bindings.UpdateResources()
{
var owner = Owner;
owner._component_0.UpdateResourceBindings();
owner._component_1.UpdateResourceBindings();
owner._component_0.UpdateResourceBindings(resourceContextProvider: null);
owner._component_1.UpdateResourceBindings(resourceContextProvider: null);
}
void IMainPage_Bindings.StopTracking()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ void IMainPage_Bindings.Update()
void IMainPage_Bindings.UpdateResources()
{
var owner = Owner;
owner._component_0.UpdateResourceBindings();
owner._component_0.UpdateResourceBindings(resourceContextProvider: null);
}
void IMainPage_Bindings.StopTracking()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -281,10 +281,10 @@ void IMainPage_Bindings.Update()
void IMainPage_Bindings.UpdateResources()
{
var owner = Owner;
owner._component_0.UpdateResourceBindings();
owner._component_1.UpdateResourceBindings();
owner._component_2.UpdateResourceBindings();
owner._component_3.UpdateResourceBindings();
owner._component_0.UpdateResourceBindings(resourceContextProvider: null);
owner._component_1.UpdateResourceBindings(resourceContextProvider: null);
owner._component_2.UpdateResourceBindings(resourceContextProvider: null);
owner._component_3.UpdateResourceBindings(resourceContextProvider: null);
}
void IMainPage_Bindings.StopTracking()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -323,9 +323,9 @@ void IMainPage_Bindings.Update()
void IMainPage_Bindings.UpdateResources()
{
var owner = Owner;
owner._component_0.UpdateResourceBindings();
owner._component_1.UpdateResourceBindings();
owner._component_2.UpdateResourceBindings();
owner._component_0.UpdateResourceBindings(resourceContextProvider: null);
owner._component_1.UpdateResourceBindings(resourceContextProvider: null);
owner._component_2.UpdateResourceBindings(resourceContextProvider: null);
}
void IMainPage_Bindings.StopTracking()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ void IMainPage_Bindings.Update()
void IMainPage_Bindings.UpdateResources()
{
var owner = Owner;
owner._component_0.UpdateResourceBindings();
owner._component_0.UpdateResourceBindings(resourceContextProvider: null);
}
void IMainPage_Bindings.StopTracking()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,8 +178,8 @@ void IMainPage_Bindings.Update()
void IMainPage_Bindings.UpdateResources()
{
var owner = Owner;
owner._component_0.UpdateResourceBindings();
owner._component_1.UpdateResourceBindings();
owner._component_0.UpdateResourceBindings(resourceContextProvider: null);
owner._component_1.UpdateResourceBindings(resourceContextProvider: null);
}
void IMainPage_Bindings.StopTracking()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -325,9 +325,9 @@ void IMainPage_Bindings.Update()
void IMainPage_Bindings.UpdateResources()
{
var owner = Owner;
owner._component_0.UpdateResourceBindings();
owner._component_1.UpdateResourceBindings();
owner._component_2.UpdateResourceBindings();
owner._component_0.UpdateResourceBindings(resourceContextProvider: null);
owner._component_1.UpdateResourceBindings(resourceContextProvider: null);
owner._component_2.UpdateResourceBindings(resourceContextProvider: null);
}
void IMainPage_Bindings.StopTracking()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,9 +233,9 @@ void IMainPage_Bindings.Update()
void IMainPage_Bindings.UpdateResources()
{
var owner = Owner;
owner._component_0.UpdateResourceBindings();
owner._component_1.UpdateResourceBindings();
owner._component_2.UpdateResourceBindings();
owner._component_0.UpdateResourceBindings(resourceContextProvider: null);
owner._component_1.UpdateResourceBindings(resourceContextProvider: null);
owner._component_2.UpdateResourceBindings(resourceContextProvider: null);
}
void IMainPage_Bindings.StopTracking()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,9 +233,9 @@ void IMainPage_Bindings.Update()
void IMainPage_Bindings.UpdateResources()
{
var owner = Owner;
owner._component_0.UpdateResourceBindings();
owner._component_1.UpdateResourceBindings();
owner._component_2.UpdateResourceBindings();
owner._component_0.UpdateResourceBindings(resourceContextProvider: null);
owner._component_1.UpdateResourceBindings(resourceContextProvider: null);
owner._component_2.UpdateResourceBindings(resourceContextProvider: null);
}
void IMainPage_Bindings.StopTracking()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,9 +233,9 @@ void IMainPage_Bindings.Update()
void IMainPage_Bindings.UpdateResources()
{
var owner = Owner;
owner._component_0.UpdateResourceBindings();
owner._component_1.UpdateResourceBindings();
owner._component_2.UpdateResourceBindings();
owner._component_0.UpdateResourceBindings(resourceContextProvider: null);
owner._component_1.UpdateResourceBindings(resourceContextProvider: null);
owner._component_2.UpdateResourceBindings(resourceContextProvider: null);
}
void IMainPage_Bindings.StopTracking()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,9 +233,9 @@ void IMainPage_Bindings.Update()
void IMainPage_Bindings.UpdateResources()
{
var owner = Owner;
owner._component_0.UpdateResourceBindings();
owner._component_1.UpdateResourceBindings();
owner._component_2.UpdateResourceBindings();
owner._component_0.UpdateResourceBindings(resourceContextProvider: null);
owner._component_1.UpdateResourceBindings(resourceContextProvider: null);
owner._component_2.UpdateResourceBindings(resourceContextProvider: null);
}
void IMainPage_Bindings.StopTracking()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ void IBinding_Xaml_Object_With_Common_Properties_Bindings.Update()
void IBinding_Xaml_Object_With_Common_Properties_Bindings.UpdateResources()
{
var owner = Owner;
owner._component_0.UpdateResourceBindings();
owner._component_0.UpdateResourceBindings(resourceContextProvider: null);
}
void IBinding_Xaml_Object_With_Common_Properties_Bindings.StopTracking()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ void IBinding_Xaml_Object_With_Xaml_Object_Properties_Bindings.Update()
void IBinding_Xaml_Object_With_Xaml_Object_Properties_Bindings.UpdateResources()
{
var owner = Owner;
owner._component_0.UpdateResourceBindings();
owner._component_0.UpdateResourceBindings(resourceContextProvider: null);
}
void IBinding_Xaml_Object_With_Xaml_Object_Properties_Bindings.StopTracking()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,7 @@ private static MetadataReference[] BuildUnoReferences()
var availableTargets = new[] {
Path.Combine("Uno.UI.Skia", configuration, "net8.0"),
Path.Combine("Uno.UI.Reference", configuration, "net8.0"),
Path.Combine("Uno.UI.Tests", configuration, "net8.0"),
};

var unoUIBase = Path.Combine(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
#nullable enable

namespace Uno.UI.SourceGenerators.XamlGenerator;

namespace Uno.UI.SourceGenerators.XamlGenerator
/// <summary>
/// Definition for Components used for lazy static resources and x:Load marked objects
/// </summary>
internal record ComponentDefinition(XamlObjectDefinition XamlObject, bool IsWeakReference, string MemberName)
{
/// <summary>
/// Definition for Components used for lazy static resources and x:Load marked objects
/// Non-FrameworkElement's resource binding requires an FE ancestor to properly resolve locally inherited resources.
/// </summary>
internal record ComponentDefinition(XamlObjectDefinition XamlObject, bool IsWeakReference, string MemberName);
public ComponentDefinition? ResourceContext { get; set; }
}
Loading

0 comments on commit 9cdf3de

Please sign in to comment.