using System; using System.Threading.Tasks; using Android.Content; using Android.Runtime; using Android.Views; using Avalonia.Input; using Avalonia.Input.Platform; using Avalonia.Platform; namespace Avalonia.Android.Platform { internal class ClipboardImpl : IClipboard { private Context context = (AvaloniaLocator.Current.GetService() as View).Context; private ClipboardManager ClipboardManager { get { return this.context.GetSystemService(Context.ClipboardService).JavaCast(); } } public Task GetTextAsync() { if (ClipboardManager.HasPrimaryClip) { return Task.FromResult(ClipboardManager.PrimaryClip.GetItemAt(0).Text); } return Task.FromResult(null); } public Task SetTextAsync(string text) { ClipData clip = ClipData.NewPlainText("text", text); ClipboardManager.PrimaryClip = clip; return Task.FromResult(null); } public Task ClearAsync() { ClipboardManager.PrimaryClip = null; return Task.FromResult(null); } public Task SetDataObjectAsync(IDataObject data) => throw new PlatformNotSupportedException(); public Task GetFormatsAsync() => throw new PlatformNotSupportedException(); public Task GetDataAsync(string format) => throw new PlatformNotSupportedException(); } }