public override bool Execute() { Log.LogMessage($"Retargeting UWP assets to {TargetPlatform}."); Func <ResourceCandidate, string> resourceToTargetPath; Func <string, string> pathEncoder; switch (TargetPlatform) { case "ios": resourceToTargetPath = resource => iOSResourceConverter.Convert(resource, DefaultLanguage); pathEncoder = p => p; break; case "android": resourceToTargetPath = resource => AndroidResourceConverter.Convert(resource, DefaultLanguage); pathEncoder = s => AndroidResourceNameEncoder.EncodeFileSystemPath(s, AndroidAssetsPrefix ?? "Assets"); break; default: Log.LogMessage($"Skipping unknown platform {TargetPlatform}"); return(true); } Assets = ContentItems.ToArray(); RetargetedAssets = Assets .Select(asset => ProcessContentItem(asset, resourceToTargetPath, pathEncoder)) .Where(a => a != null) .ToArray(); return(true); }
public void When_EncodeFileSystemPath(string input, string expected) { Assert.AreEqual(expected, AndroidResourceNameEncoder.EncodeFileSystemPath(input)); }