* Use AndroidViewControlHandle for android toplevel handle
* Use UIViewControlHandle for iOS toplevel handle
* Use JSObjectControlHandle for browser toplevel handle
* Revert NativeControlHostImpl changes
* Implemented IClipboard.TryGetInProcessDataObjectAsync for X11
* [Win32] Implemented TryGetInProcessDataObjectAsync
* Rest of the platforms
* Run `nuke ValidateApiDiff`
---------
Co-authored-by: Max Katz <maxkatz6@outlook.com>
* Start working on Android explore by touch
* Start working on a more serious solution
* Reflectionless approach
* Allow multiple providers to be defined for the same AutomationPeer instance
* Implement EmbeddableControlRootAutomationPeer
* Garbage collection
* It's working!!
* Get better readouts
* Implement rest of providers and improve performance
* Some cleanup for the PR!
* Whoopsie!
* Better text readouts for more descriptive elements
* Fix bug with previous approach
* Some final tweaks
* Last tweak!
* Slight improvements
* Undo last change
* Fix bug where custom provider types would not be registered
* Better TextBox compatibility with screen readers & TalkBack
* Fix regression for LabeledBy tests
* Clean up provider code
* Final batch of fixes for TextBox behavior
* Append text instead of replacing it to fix buggy screen readers
* Even more fixes for buggy screen readers
* Remove english-specific state descriptions
* Code review improvements
---------
Co-authored-by: Jumar Macato <16554748+jmacato@users.noreply.github.com>
* Add attribute
* Replace `SetLastError = true` with `Marshal.GetLastSystemError()`
* Make Avalonia.Base and Avalonia.Skia compatible with DisableRuntimeMarshalling
* First step in Android DisableRuntimeMarshalling support
* Make Avalonia.Browser compatible
* Set EnableRuntimeMarshalling=true on all projects we are not yet ready to support without runtime marshalling
* android - call base dispatch key event before called toplevel's override
* android - handle keyevent in avalonia before calling base DispatchKeyEvent
---------
Co-authored-by: Benedikt Stebner <Gillibald@users.noreply.github.com>
* send enter key event on soft keyboard action
* reset composition region when text buffer is updated
* update input connection state when batch edit ends
* Android screen implementation, using Display API (with some fallbacks)
* Browser screen implementation, aditionally add JSObjectPlatformHandle
* iOS screens API implementation with UIScreenPlatformHandle
* Tizen screens implementation, pretty limited but should be better than nothing
* Reduce some API changes to make them more portable in the future
* Update api suppression
* Set isDirectory:true explicitly to help [NSURL fileURLWithPath] method
Might solve some rare/random issues with initial directory not being applied
* Fix dialogs page incorrectly setting parent folder
* Move SecurityScopedStream out of iOS project and share it with macOS project
* Refactor BclStorageItem to be more reusable across platforms
* [Breaking] Set BclStorageItem.CanBookmark to false, as it never was supposed to be true. Plain BCL doesn't provide files bookmarking.
* Reimplement storage provider support on macOS, support (optional) sandboxing
* Fix build
* Fix AppSandboxEnabled=false usage
* Re-enable BCL bookmarks, keep them base64
* Fix nullable error
* Prefix all bookmarks with a platform key
* Fix devtools breaking sandboxed app
* Try to read errors after saving bookmark
* Don't crash sample app if has no access
* Add internal IStorageItemWithFileSystemInfo abstraction
* Log information if OpenSecurityScope returned false
* Fix build
* Prefix bookmarks with "ava.v1."
* Support opening old-style bookmarks to avoid breaking changes
* Adding KeyGestureFormatInfo to hold platform specific Key/Modifier Strings when performing KeyGesture.ToString()
* Implementing KeyGesture IFormattable using new KeyGestureFormatInfo
* Adding platform specific registrations of KeyGestureFormatInfo
* Using KeyGesture's new IFormattable interface to use platform specific formatting.
* Documenting changes.
* Documenting changes.
* Putting back ToPlatformString() so I don't break the API.
* Swapping Page Up and Page Down symbols on Apple platforms.
* Changing KeyGestureFormatInfo constructor Dictionary parameter to IReadOnlyDictionary along with moving Arrow key and Backspace key overrides to the common dictionary. Only Apple platforms are now overriding Keys explicitly.
* Undoing addition to MenuPage that was never intended to be committed.
* Add and implement ISingleTopLevelApplicationLifetime (internal API)
* Fix Android initialization order, so we can have AfterSetup with usable TopLevel in the callback
* Fix android and futher simplify its initialization
* Return removed public API, make it all work together, introduce AvaloniaActivity
* Adjust some comments and minor bug fixes
* Add CreateAppBuilder to iOS and Tizen as well for consistency
* Add AfterApplicationSetup private api, so our backends have a safe place to setup avalonia views.
* Keep number of breaking changes minimal
* Add .NET 8 target to packable projects
* Update test projects
* Update sample projects to target .NET 8
* Update main Avalonia package to target .NET 8 as well
* Remove MSBuildEnableWorkloadResolver hack and some minor change
* Use net8.0 in nuke build as well
* Pin 8.0.0 SDK
* Adjust API validation
* Pin a valid version
* Remove net461 target from Avalonia package
* Remove unused net6.0 target from Avalonia.Designer.HostApp
* Adjust API diff
* Update ControlCatalog.Android.csproj
* Remove MSBuildEnableWorkloadResolver
* Fix Browser issues on .NET 8
* Fix .NET 8 error
* Fix merge conflicts
* Replace explicit TFMs in .csproj files with a centralized registry
* Fix merge conflict
* Fix AvsLegacyWindowsTargetFrameworks and add hacks for the tests
* Update XCode project CommandLineArgument
---------
Co-authored-by: Nikita Tsukanov <keks9n@gmail.com>
* Use NSSearchPathDomain.User when opening a known folder on iOS
* Use UIImagePickerController for WellKnownFolder.Pictures
* Improve how Android handles read permissions
* Raise BackRequested with Send priority
* Raise InsestsManager events with Send priority
* Raise InputPane events with Send priority
* Raise PlatformSettings events with Send priority
* Redirect some more events to the Dispatcher from TopLevel
* Init
* Remove XY navigation cache as it's no use
* Use pooled collection for XY navigation
* Restructure code a bit, fix IScroller handling
* Init KeyboardNavigationTests_XY tests
* Simplify XYFocus.GetNextFocusableElement usage
* Minor fixes
* Add more tests
* Remove unused NuiKeyboardNavigationHandler
* Finalizing
* Fix tests
* Add TODO12
* Make XYFocusOptions a class
* Add TestServices.FocusableWindow and make KeyboardNavigationHandler lazy, as it can't be reused on multiple windows
* Fix KeyboardNavigationHandler events handling, when focus was not actually changed
* Add arrow key tests
* Replace XYFocusKeyboardNavigationMode with more flexible XYFocusNavigationModes, integrate with KeyDeviceType input types
* Make XY focus navigation less broken, when there is no starting focused control
* Several Android TV compatibility improvements
* Remap tizen Back button to Esc
* Introduce internal XYFocusHelpers
* Make ComboBox and AutoCompleteBox handle Key events only when it's needed
* Make TextBox handle Key events only when it's needed
* Ignore Alt+Down when XY navigation is enabled in CalendarDatePicker and SplitButton
* Rename IsAllowedXYNavigationMode
* Fix ButtonSpinner with XY navigation
* Implement a very simple focus engagement for GridSplitter and Slider