A cross-platform UI framework for .NET
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

43 lines
1.3 KiB

using System;
using Android.Content;
using Avalonia.Input;
namespace Avalonia.Android.Platform;
internal static class AndroidDataFormatHelper
{
private const string AppPrefix = "application/avn-fmt.";
private const string MimeTypeImagePng = "image/png";
public static DataFormat MimeTypeToDataFormat(string mimeType)
{
if (mimeType == ClipDescription.MimetypeTextPlain)
return DataFormat.Text;
if (mimeType == ClipDescription.MimetypeTextUrilist)
return DataFormat.File;
if (mimeType.StartsWith("image/", StringComparison.OrdinalIgnoreCase))
return DataFormat.Bitmap;
if (mimeType.StartsWith("text/", StringComparison.OrdinalIgnoreCase))
return DataFormat.FromSystemName<string>(mimeType, AppPrefix);
return DataFormat.FromSystemName<byte[]>(mimeType, AppPrefix);
}
public static string DataFormatToMimeType(DataFormat format)
{
if (DataFormat.Text.Equals(format))
return ClipDescription.MimetypeTextPlain;
if (DataFormat.File.Equals(format))
return ClipDescription.MimetypeTextUrilist;
if (DataFormat.Bitmap.Equals(format))
return MimeTypeImagePng;
return format.ToSystemName(AppPrefix);
}
}