Пример #1
0
        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));
 }