Skip to content

Commit f653bf5

Browse files
committed
fix(net6): [Android] Adjust for proper assets base path
1 parent de9d747 commit f653bf5

File tree

4 files changed

+8
-5
lines changed

4 files changed

+8
-5
lines changed

build/uno.winui.single-project.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
<AndroidProjectFolder Condition=" '$(AndroidProjectFolder)' == '' ">Android\</AndroidProjectFolder>
5252
<AndroidManifest>$(AndroidProjectFolder)AndroidManifest.xml</AndroidManifest>
5353
<MonoAndroidResourcePrefix>$(AndroidProjectFolder)Resources</MonoAndroidResourcePrefix>
54-
<MonoAndroidAssetsPrefix>$(AndroidProjectFolder)Assets;Assets</MonoAndroidAssetsPrefix>
54+
<MonoAndroidAssetsPrefix>$(AndroidProjectFolder)Assets</MonoAndroidAssetsPrefix>
5555

5656
<!-- iOS -->
5757
<EnableDefaultiOSItems>false</EnableDefaultiOSItems>

src/SourceGenerators/Uno.UI.Tasks/Assets/RetargetAssets.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ public class RetargetAssets_v0 : Task
2626
[Required]
2727
public string TargetPlatform { get; set; }
2828

29+
public string AndroidAssetsPrefix { get; set; }
30+
2931
[Required]
3032
public string DefaultLanguage { get; set; }
3133

@@ -53,7 +55,7 @@ public override bool Execute()
5355
break;
5456
case "android":
5557
resourceToTargetPath = resource => AndroidResourceConverter.Convert(resource, DefaultLanguage);
56-
pathEncoder = AndroidResourceNameEncoder.EncodeFileSystemPath;
58+
pathEncoder = s => AndroidResourceNameEncoder.EncodeFileSystemPath(s, AndroidAssetsPrefix ?? "Assets");
5759
break;
5860
default:
5961
Log.LogMessage($"Skipping unknown platform {TargetPlatform}");
@@ -62,7 +64,7 @@ public override bool Execute()
6264

6365
Assets = ContentItems.ToArray();
6466
RetargetedAssets = Assets
65-
.Select((Func<ITaskItem, TaskItem>)(asset => ProcessContentItem(asset, resourceToTargetPath, pathEncoder)))
67+
.Select(asset => ProcessContentItem(asset, resourceToTargetPath, pathEncoder))
6668
.Where(a => a != null)
6769
.ToArray();
6870

src/SourceGenerators/Uno.UI.Tasks/Content/Uno.UI.Tasks.targets

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
TargetPlatform="$(XamarinProjectType)"
6363
DefaultLanguage="$(DefaultLanguage)"
6464
ContentItems="@(Content)"
65+
AndroidAssetsPrefix="$(MonoAndroidAssetsPrefix)"
6566
Condition="'$(XamarinProjectType)'!=''">
6667
<Output TaskParameter="Assets"
6768
ItemName="Assets" />

src/Uno.UWP/Helpers/AndroidResourceNameEncoder.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ public static string Encode(string key)
4646
return key;
4747
}
4848

49-
public static string EncodeFileSystemPath(string path)
49+
public static string EncodeFileSystemPath(string path, string prefix = "Assets")
5050
// Android assets need to placed in the Assets folder
51-
=> global::System.IO.Path.Combine("Assets", EncodePath(path, global::System.IO.Path.DirectorySeparatorChar));
51+
=> global::System.IO.Path.Combine(prefix, EncodePath(path, global::System.IO.Path.DirectorySeparatorChar));
5252

5353
public static string EncodeResourcePath(string path)
5454
=> EncodePath(path, '/');

0 commit comments

Comments
 (0)