Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed the tab bar not hiding/showing if property changed #16653

Closed
wants to merge 122 commits into from

Commits on Aug 4, 2023

  1. Add swipe for uitests

    sbanni committed Aug 4, 2023
    Configuration menu
    Copy the full SHA
    daae750 View commit details
    Browse the repository at this point in the history

Commits on Aug 9, 2023

  1. fix(tabbar): Fixed the tab bar not hiding/showing if property changed

    The tabbar on Windows wouldn't toggle visibility if modified, and would only hide/show on current item change
    Mike Corsaro committed Aug 9, 2023
    Configuration menu
    Copy the full SHA
    bdde467 View commit details
    Browse the repository at this point in the history
  2. Adjust whitespace

    Mike Corsaro committed Aug 9, 2023
    Configuration menu
    Copy the full SHA
    fe9b2d5 View commit details
    Browse the repository at this point in the history
  3. Implement Additional PointerGestureRecognizer Platform Arguments (#16426

    )
    
    * Pointer Platform Event Args
    
    * remove extension and use property instead
    
    * make ctor internal
    
    * nullable consistency, spelling, and private setter
    
    * Public API changes and remove nullable windows routedargs
    
    * uitests part 1
    
    * only run ui tests on windows and mac
    
    * move device conditional to test
    
    * Change the tests to Pointer Tests for more reusability
    
    * Add documentation
    
    * Add extension method for ignoring platforms
    
    * Update the documentation
    
    * Change platform specific docs
    tj-devel709 committed Aug 9, 2023
    Configuration menu
    Copy the full SHA
    3faf8a0 View commit details
    Browse the repository at this point in the history
  4. [C] fix Specificity for VSM (#16404)

    * [C] fix Specificity for VSM
    
    - fixes #11204
    
    * remove skipped test
    StephaneDelcroix committed Aug 9, 2023
    Configuration menu
    Copy the full SHA
    55acb3a View commit details
    Browse the repository at this point in the history

Commits on Aug 10, 2023

  1. Configuration menu
    Copy the full SHA
    e8e3b4f View commit details
    Browse the repository at this point in the history
  2. [Housekeeping] Remove checkboxes from bug template (#16650)

    I did not realize that they would be editable tasks on the issue. Replaced with a dropdown. Also reordered the versions to be the most likely default options to speed up the reporting process.
    samhouts committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    68aa9e9 View commit details
    Browse the repository at this point in the history
  3. [Android] Fix SwipeView not swiping using Label as direct content (#1…

    …4824)
    
    * Fix Android SwipeView not swiping using Label as Content
    
    * Refactoring code
    
    * Added sample to validate 6154
    
    ---------
    
    Co-authored-by: Javier Suárez <6755973+jsuarezruiz@users.noreply.github.com>
    jsuarezruiz and jsuarezruiz committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    d257304 View commit details
    Browse the repository at this point in the history
  4. Locate MAUI View for PlatformView (#16463)

    * Locate xplat view from platformview
    
    * - dispatcher
    
    * - fix layout comparison on xunit
    
    * - PR review comments
    
    * - tizen fix
    PureWeen committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    92cb037 View commit details
    Browse the repository at this point in the history
  5. Bump the aspnetcore group with 7 updates (#16634)

    Bumps the aspnetcore group with 7 updates:
    
    | Package | Update |
    | --- | --- |
    | [Microsoft.AspNetCore.Authorization](https://github.com/dotnet/aspnetcore) | 7.0.9 to 7.0.10 |
    | [Microsoft.AspNetCore.Components.WebView](https://github.com/dotnet/aspnetcore) | 7.0.9 to 7.0.10 |
    | [Microsoft.JSInterop](https://github.com/dotnet/aspnetcore) | 7.0.9 to 7.0.10 |
    | [Microsoft.AspNetCore.Components.Web](https://github.com/dotnet/aspnetcore) | 7.0.9 to 7.0.10 |
    | [Microsoft.AspNetCore.Authentication.Facebook](https://github.com/dotnet/aspnetcore) | 7.0.9 to 7.0.10 |
    | [Microsoft.AspNetCore.Authentication.Google](https://github.com/dotnet/aspnetcore) | 7.0.9 to 7.0.10 |
    | [Microsoft.AspNetCore.Authentication.MicrosoftAccount](https://github.com/dotnet/aspnetcore) | 7.0.9 to 7.0.10 |
    
    
    Updates `Microsoft.AspNetCore.Authorization` from 7.0.9 to 7.0.10
    - [Release notes](https://github.com/dotnet/aspnetcore/releases)
    - [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md)
    - [Commits](dotnet/aspnetcore@v7.0.9...v7.0.10)
    
    Updates `Microsoft.AspNetCore.Components.WebView` from 7.0.9 to 7.0.10
    - [Release notes](https://github.com/dotnet/aspnetcore/releases)
    - [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md)
    - [Commits](dotnet/aspnetcore@v7.0.9...v7.0.10)
    
    Updates `Microsoft.JSInterop` from 7.0.9 to 7.0.10
    - [Release notes](https://github.com/dotnet/aspnetcore/releases)
    - [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md)
    - [Commits](dotnet/aspnetcore@v7.0.9...v7.0.10)
    
    Updates `Microsoft.AspNetCore.Components.Web` from 7.0.9 to 7.0.10
    - [Release notes](https://github.com/dotnet/aspnetcore/releases)
    - [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md)
    - [Commits](dotnet/aspnetcore@v7.0.9...v7.0.10)
    
    Updates `Microsoft.AspNetCore.Authentication.Facebook` from 7.0.9 to 7.0.10
    - [Release notes](https://github.com/dotnet/aspnetcore/releases)
    - [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md)
    - [Commits](dotnet/aspnetcore@v7.0.9...v7.0.10)
    
    Updates `Microsoft.AspNetCore.Authentication.Google` from 7.0.9 to 7.0.10
    - [Release notes](https://github.com/dotnet/aspnetcore/releases)
    - [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md)
    - [Commits](dotnet/aspnetcore@v7.0.9...v7.0.10)
    
    Updates `Microsoft.AspNetCore.Authentication.MicrosoftAccount` from 7.0.9 to 7.0.10
    - [Release notes](https://github.com/dotnet/aspnetcore/releases)
    - [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md)
    - [Commits](dotnet/aspnetcore@v7.0.9...v7.0.10)
    
    ---
    updated-dependencies:
    - dependency-name: Microsoft.AspNetCore.Authorization
      dependency-type: direct:production
      update-type: version-update:semver-patch
      dependency-group: aspnetcore
    - dependency-name: Microsoft.AspNetCore.Components.WebView
      dependency-type: direct:production
      update-type: version-update:semver-patch
      dependency-group: aspnetcore
    - dependency-name: Microsoft.JSInterop
      dependency-type: direct:production
      update-type: version-update:semver-patch
      dependency-group: aspnetcore
    - dependency-name: Microsoft.AspNetCore.Components.Web
      dependency-type: direct:production
      update-type: version-update:semver-patch
      dependency-group: aspnetcore
    - dependency-name: Microsoft.AspNetCore.Authentication.Facebook
      dependency-type: direct:production
      update-type: version-update:semver-patch
      dependency-group: aspnetcore
    - dependency-name: Microsoft.AspNetCore.Authentication.Google
      dependency-type: direct:production
      update-type: version-update:semver-patch
      dependency-group: aspnetcore
    - dependency-name: Microsoft.AspNetCore.Authentication.MicrosoftAccount
      dependency-type: direct:production
      update-type: version-update:semver-patch
      dependency-group: aspnetcore
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    8d5b999 View commit details
    Browse the repository at this point in the history
  6. [create-pull-request] automated change (#16655)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    c33e2f5 View commit details
    Browse the repository at this point in the history
  7. [ios] fix memory leak in SwipeItem (#16614)

    Context: #16346
    
    This addresses the memory leak discovered by:
    
        src/Core/src/Handlers/SwipeItemMenuItem/SwipeItemMenuItemHandler.iOS.cs(10,30): error MA0001: Event 'FrameChanged' could cause memory leaks in an NSObject subclass. Remove the event or add the [UnconditionalSuppressMessage("Memory", "MA0001")] attribute with a justification as to why the event will not leak.
    
    I could reproduce the leak with a custom test in `SwipeViewTests`.
    
    Solved the problem by introducing `SwipeItemButtonProxy` with the same
    pattern from other PRs.
    jonathanpeppers committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    be28ebe View commit details
    Browse the repository at this point in the history
  8. [ios/catalyst] fix memory leak in DatePicker (#16589)

    Context: #16346
    
    This addresses the memory leak discovered by:
    
        src/Core/src/Platform/iOS/MauiDatePicker.cs(37,27): error MA0003: Subscribing to events with instance method 'OnValueChanged' could cause memory leaks in an NSObject subclass. Remove the subscription or convert the method to a static method.
    
    I could reproduce a leak in `MemoryTests.cs`:
    
        ++[InlineData(typeof(DatePicker))]
        public async Task HandlerDoesNotLeak(Type type)
    
    Solved the problem by fixing two places:
    
    * `MauiDatePicker` now uses a `UIDatePickerProxy` type, for iOS
    
    * `DatePickerHandler.MacCatalyst.cs` now uses a `UIDatePickerProxy` type,
      for MacCatalyst.
    
    Other changes:
    
    * Skip test on Android API 23
    
    This is working for me locally on an API 23 emulator -- so I don't think
    it is really leaking.
    
    We skipped API 23 in another place:
    
    https://github.com/dotnet/maui/blob/9fcccd57b5a3d664e4788b3c7fc3edc10010beaf/src/Controls/tests/DeviceTests/Elements/NavigationPage/NavigationPageTests.cs#L302-L303
    
    We are more interested in iOS on this PR anyway.
    jonathanpeppers committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    39c144b View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    e5da563 View commit details
    Browse the repository at this point in the history
  10. Add swipe gesture for uitests (#16560)

    ### Description of Change
    
    Implement Swipe for UI Testing
    First attempt at more complicated queries for 'child'
    
    This will enable Javier's changes for
    #14320 with some additional changes
    to his test that I will make once this is in.
    sbanni committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    b82609d View commit details
    Browse the repository at this point in the history
  11. Add doc comments for common types used in templates, maps, webview (#…

    …16552)
    
    * Add doc comments for common types used in templates, maps, webview
    * Enable WarnigsAsErrors for inline docs on Maps
    
    I went through every type/method/etc. used in the default MAUI app template and ensured there are doc for all of them.
    
    I also added a few miscellaneous docs for WebView types and Map (many were copied from Xamarin.Forms docs).
    ---------
    Co-authored-by: Gerald Versluis <gerald.versluis@microsoft.com>
    Eilon committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    db01c83 View commit details
    Browse the repository at this point in the history
  12. Update CODEOWNERS (#16682)

    samhouts committed Aug 10, 2023
    Configuration menu
    Copy the full SHA
    7e9e3e2 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    0977c0b View commit details
    Browse the repository at this point in the history

Commits on Aug 11, 2023

  1. Configuration menu
    Copy the full SHA
    c582e4d View commit details
    Browse the repository at this point in the history
  2. Re-land "[Windows] fixing window glitches while moving or resizing" (#…

    …16637)
    
    Initially merged in #14861 but there was a few test failures due to 83398c3 so it was reverted in #16541
    mattleibow committed Aug 11, 2023
    Configuration menu
    Copy the full SHA
    412eb05 View commit details
    Browse the repository at this point in the history

Commits on Aug 13, 2023

  1. Configuration menu
    Copy the full SHA
    7b74d43 View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2023

  1. Enable default xcode path (#16708)

    * If specific XCODE path isn't found don't include it on args
    
    * - always include args for CI build
    
    * - cleanup
    PureWeen committed Aug 14, 2023
    Configuration menu
    Copy the full SHA
    a7e99ae View commit details
    Browse the repository at this point in the history
  2. [ios] fix memory leak in WindowOverlay (#16700)

    Context: #16346
    
    This addresses the memory leak discovered by:
    
        src/Core/src/WindowOverlay/WindowOverlay.iOS.cs(92,40): error MA0001: Event 'OnTouch' could cause memory leaks in an NSObject subclass. Remove the event or add the [UnconditionalSuppressMessage("Memory", "MA0001")] attribute with a justification as to why the event will not leak.
    
    I could reproduce a leak by writing a custom test.
    
    Solved the problem by:
    
    * Removed the `PassthroughView.OnTouch` event completely. We could just
      call `WindowOverlay.OnTappedInternal()` directly instead of going
      through an intermediate event.
    
    * `WindowOverlay overlay` is now a `WeakReference<WindowOverlay>`.
    jonathanpeppers committed Aug 14, 2023
    Configuration menu
    Copy the full SHA
    ff02f57 View commit details
    Browse the repository at this point in the history
  3. Make Android visual test screenshots more deterministic (#16591)

    * Use consistent nav bar styling
    
    Use the same nav bar style for the gallery pages and the issues pages.
    This looks better aesthetically and avoids an issue where issue
    page screenshots aren't consistent, depending on whether you've
    ever visited a gallery page or not.
    
    See more details in the Teams chat here:
    https://teams.microsoft.com/l/message/19:46c9eef68efe400393f538bd778e4718@thread.v2/1691428231798?context=%7B%22contextType%22%3A%22chat%22%7D
    
    * Crop off the 3 button nav at the bottom of Android screens.
    
    * Only call iOS SetPrefersLargeTitles on gallery pages
    
    * Update snapshots, with updated tabbar color
    BretJohnson committed Aug 14, 2023
    Configuration menu
    Copy the full SHA
    e36d222 View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2023

  1. Configuration menu
    Copy the full SHA
    48e5caa View commit details
    Browse the repository at this point in the history
  2. [UITest] Add more logging and restart in setup (#16687)

    * For UITests add logging to test setup failure and attempt to restart app for clean run
    
    * Check for null on App
    
    * Log a message to the output if we have to retry and handle UITestContext being null in teardown
    
    * Add retry to starting the driver for ios
    
    * Emit better log messages
    sbanni committed Aug 15, 2023
    Configuration menu
    Copy the full SHA
    73271cc View commit details
    Browse the repository at this point in the history
  3. [ios] fix memory leak in Picker (#16685)

    Context: #16346
    
    This addresses the memory leak discovered by:
    
        src/Core/src/Platform/iOS/MauiPicker.cs(21,24): error MA0002: Member 'UIPickerView' could cause memory leaks in an NSObject subclass. Remove the member, store the value as a WeakReference, or add the [UnconditionalSuppressMessage("Memory", "MA0002")] attribute with a justification as to why the member will not leak.
    
    I could reproduce a leak in `MemoryTests.cs`:
    
        ++[InlineData(typeof(Picker))]
        public async Task HandlerDoesNotLeak(Type type)
    
    Solved the problem by:
    
    * Introduce `MauiPickerProxy` for all event subscriptions. Same pattern
      as in other PRs.
    
    * The `ShouldBeginEditing` event was originally subscribed in
      `CreatePlatformView()` and never unsubscribed. I moved to be
      subscribed/unsubscribed the same way as the other events.
    
    * Refactored the `CreateAlert()` method to be `DisplayAlert()` instead.
      This allows the handler to do all the work -- and the
      `MauiPickerProxy` type can call a method on `PickerHandler` once.
    jonathanpeppers committed Aug 15, 2023
    Configuration menu
    Copy the full SHA
    844b019 View commit details
    Browse the repository at this point in the history
  4. [create-pull-request] automated change (#16690)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] committed Aug 15, 2023
    Configuration menu
    Copy the full SHA
    f57cf31 View commit details
    Browse the repository at this point in the history
  5. [X] avoid AmibuousMatchException (#15873)

    with XamlC disabled, setting an overriden property throws a
    AmbiguousMatchException. This fixes the mismatch between the 2
    inflaters.
    
    - fixes #13962
    StephaneDelcroix committed Aug 15, 2023
    Configuration menu
    Copy the full SHA
    7f60836 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    7f921c7 View commit details
    Browse the repository at this point in the history
  7. [tests] Enable TreatWarningsAsErrors=true (#16766)

    Fixes: #16709
    
    Sets `TreatWarningsAsErrors` to true when building template and sample
    projects to ensure that warnings are not missed.
    pjcollins committed Aug 15, 2023
    Configuration menu
    Copy the full SHA
    6fd85a1 View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2023

  1. Streamline SwipeView Children (#16753)

    * Streamline SwipeView Children
    
    * - fix swipeview to not use legacy layout calls
    PureWeen committed Aug 16, 2023
    Configuration menu
    Copy the full SHA
    9b0aa90 View commit details
    Browse the repository at this point in the history
  2. [create-pull-request] automated change (#16771)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] committed Aug 16, 2023
    Configuration menu
    Copy the full SHA
    e272bfc View commit details
    Browse the repository at this point in the history
  3. Allow "duplicate" files to be processed (#16534)

    * Allow "duplicate" files to be processed
    
    * Detect and handle duplicates
    
    * Allow "duplicate" files to be processed
    
    * Detect and handle duplicates
    
    * fix tests
    mattleibow committed Aug 16, 2023
    Configuration menu
    Copy the full SHA
    68782d8 View commit details
    Browse the repository at this point in the history
  4. [iOS/Catalyst] Fix issue loading images from Stream (#16162)

    * Fix the issue
    
    * More changes
    
    * Added device test
    jsuarezruiz committed Aug 16, 2023
    Configuration menu
    Copy the full SHA
    0ebb60b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    29a4bec View commit details
    Browse the repository at this point in the history
  6. Fixed pin display mode not updating

    Mike Corsaro committed Aug 16, 2023
    Configuration menu
    Copy the full SHA
    4c3ee52 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    8b5c996 View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2023

  1. Revert "Internalize MessagingCenter (#12582)" (#16798)

    This reverts commit f9be2d1.
    
    # Conflicts:
    #	src/Controls/src/Core/MessagingCenter.cs
    #	src/Controls/src/Core/Properties/AssemblyInfo.cs
    #	src/Controls/src/Core/PublicAPI/net-android/PublicAPI.Unshipped.txt
    #	src/Controls/src/Core/PublicAPI/net-ios/PublicAPI.Unshipped.txt
    #	src/Controls/src/Core/PublicAPI/net-maccatalyst/PublicAPI.Unshipped.txt
    #	src/Controls/src/Core/PublicAPI/net-tizen/PublicAPI.Unshipped.txt
    #	src/Controls/src/Core/PublicAPI/net-windows/PublicAPI.Unshipped.txt
    #	src/Controls/src/Core/PublicAPI/net/PublicAPI.Unshipped.txt
    #	src/Controls/src/Core/PublicAPI/netstandard/PublicAPI.Unshipped.txt
    mattleibow committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    34b481d View commit details
    Browse the repository at this point in the history
  2. Add a UI test for tapping on a label span (#16222)

    * Squashed commit of the following:
    
    * case
    
    * screenshots
    
    * try adding a type name
    
    * Try capture things
    
    * Fix the changes after a merge
    
    ---------
    
    Co-authored-by: Shane Neuville <shneuvil@microsoft.com>
    mattleibow and PureWeen committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    fd74e8d View commit details
    Browse the repository at this point in the history
  3. [create-pull-request] automated change (#16801)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    9948640 View commit details
    Browse the repository at this point in the history
  4. [build] avoid NETSDK1195 error (#16795)

    Context: dotnet/sdk#30948
    
    Building with VS 2022 17.8 Preview 1, I get the error:
    
        C:\Program Files\dotnet\sdk\8.0.100-preview.7.23376.3\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5):
        error NETSDK1195: Trimming, or code compatibility analysis for trimming, single-file deployment, or ahead-of-time compilation is not supported for the target framework. For more information, see https://aka.ms/netsdk1195
    
    It appears there is a new build warning if you set `IsTrimmable=true` in
    a `netstandard` project.
    
    For now, this doesn't really matter to MAUI as these projects only
    *really* need to be trimmable for mobilie. `net8.0-android`,
    `net8.0-ios`, etc. projects can remain trimmable if we add a condition:
    
        <IsTrimmable Condition="!$(TargetFramework.StartsWith('netstandard'))">true</IsTrimmable>
    jonathanpeppers committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    d22cb6a View commit details
    Browse the repository at this point in the history
  5. Document IElementHandler (#16706)

    * Add Documentation for IElementHandler
    
    * apply cr suggestions
    
    ---------
    
    Co-authored-by: Diana Soltani <dianasoltani@microsoft.com>
    DianaSoltani and Diana Soltani committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    86b71e1 View commit details
    Browse the repository at this point in the history
  6. Import Keyboard Extension APIs (#16572)

    * Import Keyboard Extension APIs
    
    * Tizen...
    
    * Test
    
    * Fix API
    
    * API
    
    * Fix original tests
    
    * Add Soft Input buttons to entry page
    
    * Start adding tests
    
    * Update test
    
    * Update src/Core/src/Platform/KeyboardExtensions.cs
    
    Co-authored-by: Shane Neuville <shane94@hotmail.com>
    
    * Apply suggestions from code review
    
    Co-authored-by: Rachel Kang <rachel.j.kang@gmail.com>
    
    * Apply suggestions from code review
    
    Co-authored-by: Rachel Kang <rachel.j.kang@gmail.com>
    
    * Move namespaces/files
    
    * API
    
    * Internal Compatibility update
    
    * More fixes
    
    ---------
    
    Co-authored-by: Shane Neuville <shane94@hotmail.com>
    Co-authored-by: Rachel Kang <rachel.j.kang@gmail.com>
    3 people committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    22fab2d View commit details
    Browse the repository at this point in the history
  7. Wire up MapMenuItems

    Mike Corsaro committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    2dd280a View commit details
    Browse the repository at this point in the history
  8. Bump Microsoft.NET.Test.Sdk from 17.7.0 to 17.7.1 (#16822)

    Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.7.0 to 17.7.1.
    - [Release notes](https://github.com/microsoft/vstest/releases)
    - [Changelog](https://github.com/microsoft/vstest/blob/main/docs/releases.md)
    - [Commits](microsoft/vstest@v17.7.0...v17.7.1)
    
    ---
    updated-dependencies:
    - dependency-name: Microsoft.NET.Test.Sdk
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    097bbc6 View commit details
    Browse the repository at this point in the history
  9. [windows] fix memory leak in ListView (#16762)

    * [windows] fix memory leak in ListView
    
    Context: https://github.com/Tamilarasan-Paranthaman/Maui-Itemssource-Switching-Issue
    Fixes: #16450
    
    In a customer sample, swapping a `ListView.ItemsSource` back and forth,
    such as:
    
        listView.ItemsSource = employeeInfoRepository.EmployeesInfo1;
        listView.ItemsSource = employeeInfoRepository.EmployeesInfo2;
    
    Appears to create new `Cell`'s for each call -- and each new cell lives
    forever. I could reproduce this issue in a device test.
    
    Viewing a memory snapshot, each `Cell` via `Cell.Parent` subscribes to
    events on their parent, the `ListView`:
    
    * https://github.com/dotnet/maui/blob/9fcccd57b5a3d664e4788b3c7fc3edc10010beaf/src/Controls/src/Core/Cells/Cell.cs#L197-L201
    * https://github.com/dotnet/maui/blob/9fcccd57b5a3d664e4788b3c7fc3edc10010beaf/src/Controls/src/Core/Element/Element.cs#L322
    
    This makes the `ListView` hold onto each `Cell` causing them to live
    forever. However, the leak would go away if you navigated away from the
    current `Page`, removed the `ListView` from the screen, etc.
    
    Possible workarounds were:
    
    1. Use two `ListView` instead, and show/hide them.
    
    2. Use a `CollectionView` instead.
    
    The fix I came up with appears to be reasonable. In
    `CellControl.OnUnloaded`:
    
        void OnUnloaded(object sender, RoutedEventArgs e)
        {
            // ...
            // 🚀 unsubscribe from propertychanged
            Cell.PropertyChanged -= _propertyChangedHandler;
            // Allows the Cell to unsubscribe from Parent.PropertyChanged
            Cell.Parent = null;
        }
    
    This event is fired when WinUI has removed the `CellControl` from the
    visual tree. We can safely *unset* the `Cell`'s `Parent`, which
    unsubscribes from the problematic events.
    
    If the `Cell` is later re-added to the visual tree, it's `DataContext`
    will be updated. In `CellControl`'s `SetCell(object newContext)` the
    `Cell.Parent` is reset to the `ListView`.
    
    I added two test cases for this scenario: one for the leak, and one to
    prove that re-setting `ItemsSource` still works.
    
    * Update ListViewTests.cs
    jonathanpeppers committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    040f2f1 View commit details
    Browse the repository at this point in the history
  10. Removed extra call to UpdateCurrentItem

    Added additional tests
    Mike Corsaro committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    77d2fa7 View commit details
    Browse the repository at this point in the history

Commits on Aug 18, 2023

  1. Document Brush & Colors (#16738)

    * Document Brush & Colors
    
    * Address PR feedback
    jknaudt21 committed Aug 18, 2023
    Configuration menu
    Copy the full SHA
    ace9fe5 View commit details
    Browse the repository at this point in the history
  2. Don't force the RID to be x64 (#16678)

    We still need to keep the single RID as the blazor bits have issues
    mattleibow committed Aug 18, 2023
    Configuration menu
    Copy the full SHA
    2287124 View commit details
    Browse the repository at this point in the history
  3. [create-pull-request] automated change (#16844)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] committed Aug 18, 2023
    Configuration menu
    Copy the full SHA
    f8382f3 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    80a40e0 View commit details
    Browse the repository at this point in the history
  5. Add a "VSCode" target to open the "maui.code-workspace". (#16732)

    * Add a "VSCode" target to open the "maui.code-workspace".
    
    This commit adds a new --target for the cake script which
    will open Visual Studio Code after a build.
    
    ```
    dotnet cake --target=VSCode --workloads=global
    ```
    
    * Update Documents
    dellis1972 committed Aug 18, 2023
    Configuration menu
    Copy the full SHA
    e6630ee View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2023

  1. [windows] Fix Picker PointerOver TextColor (#16751) (#16752)

    Add missing resource key to allow PointerOver styles to work for Picker
    controls
    
    Co-authored-by: Jeremy Powell <jeremy@visionaid.com>
    molesmoke and jeremy-visionaid committed Aug 19, 2023
    Configuration menu
    Copy the full SHA
    9cec15b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    60c5a15 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    a099520 View commit details
    Browse the repository at this point in the history

Commits on Aug 21, 2023

  1. [iOS] Fix ScrollTo method issues (#15984)

    * Fix iOS ScrollTo issues
    
    * Added comments
    
    * Added sample
    
    * Avoid possible memory leak
    
    * Added UI Tests
    
    * More changes
    
    * Changes in tests
    
    * Update src/Controls/samples/Controls.Sample.UITests/CoreViews/CorePageView.cs
    
    Co-authored-by: Jonathan Peppers <jonathan.peppers@microsoft.com>
    
    * Update src/Core/src/Platform/iOS/MauiScrollView.cs
    
    Co-authored-by: Jonathan Peppers <jonathan.peppers@microsoft.com>
    
    * Avoid unnecessary event
    
    * More changes
    
    * Fixed tests
    
    ---------
    
    Co-authored-by: Jonathan Peppers <jonathan.peppers@microsoft.com>
    jsuarezruiz and jonathanpeppers committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    5af60d3 View commit details
    Browse the repository at this point in the history
  2. [Android] Fix issue setting CarouselView position on Ctor or Appearing (

    #16165)
    
    * Fix the issue
    
    * Updated sample
    
    * Added device test
    
    * Added UI Tests
    
    * Updated test
    
    * Updated test
    
    * Fix the issue
    
    * Updated sample
    
    * Added device test
    
    * Added UI Tests
    
    * Updated test
    
    * Updated test
    
    * Changes in tests
    jsuarezruiz committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    2b66f51 View commit details
    Browse the repository at this point in the history
  3. [create-pull-request] automated change (#16872)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    440daec View commit details
    Browse the repository at this point in the history
  4. Use the x86 emulator for API 27 (#16869)

    * Use the x86 emulator for API 27
    
    * Update provisioning.csx
    
    * Update android.cake
    
    ---------
    
    Co-authored-by: Rui Marinho <me@ruimarinho.net>
    mattleibow and rmarinho committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    80a7199 View commit details
    Browse the repository at this point in the history
  5. Bump Microsoft.Net.Compilers.Toolset from 4.6.0 to 4.7.0 (#16889)

    Bumps [Microsoft.Net.Compilers.Toolset](https://github.com/dotnet/roslyn) from 4.6.0 to 4.7.0.
    - [Release notes](https://github.com/dotnet/roslyn/releases)
    - [Changelog](https://github.com/dotnet/roslyn/blob/main/docs/Breaking%20API%20Changes.md)
    - [Commits](https://github.com/dotnet/roslyn/commits)
    
    ---
    updated-dependencies:
    - dependency-name: Microsoft.Net.Compilers.Toolset
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    70022df View commit details
    Browse the repository at this point in the history
  6. [BuildTasks] Fix resolution for nested types (#16841)

    Fixes: #16293
    Context: db74ff7
    
    The `XamlC` task was failing to resolve public nested types from a class
    library.  Fix this by updating the `IsPublicOrVisibleInternal` checks
    added in commit db74ff7 to also accept public nested types.
    pjcollins committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    0d162b3 View commit details
    Browse the repository at this point in the history
  7. [windows] improve memory usage of CollectionView (#16838)

    Context: #16436
    Context: https://github.com/symbiogenesis/Maui.DataGrid/tree/net8-memory-leak
    
    A customer sample has a `CollectionView` with 150,000 data-bound rows.
    
    Debugging what happens at runtime, I found we effectively were doing:
    
        _itemTemplateContexts = new List<ItemTemplateContext>(capacity: 150_000);
        for (int n = 0; n < 150_000; n++)
        {
            _itemTemplateContexts.Add(null);
        }
    
    Then the items were created as you scroll each row into view:
    
        if (_itemTemplateContexts[index] == null)
        {
            _itemTemplateContexts[index] = context = new ItemTemplateContext(_itemTemplate, _itemsSource[index],
                _container, _itemHeight, _itemWidth, _itemSpacing, _mauiContext);
        }
        return _itemTemplateContexts[index];
    
    This code accesses the indexer multiple times, into a `List<T>` with
    150,000 `null` items.
    
    To improve this:
    
    * use a `Dictionary<int, T>` instead, just let it size dynamically.
    
    * use `TryGetValue(..., out var context)`, so each call accesses the
      indexer one less time than before.
    
    * use either the bound collection's size or 64 (whichever is smaller) as
      a rough estimate of how many might fit on screen at a time.
    
    Taking a memory snapshot of the app after startup:
    
        Before:
        Heap Size: 82,899.54 KB
        After:
        Heap Size: 81,768.76 KB
    
    Which is saving about 1MB of memory on launch.
    
    In this case, it feels better to just let the `Dictionary` size itself
    with an estimate of what `capacity` will be.
    jonathanpeppers committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    9fea1f5 View commit details
    Browse the repository at this point in the history
  8. [ios] test MemoryAnalyzers package (#16346)

    Context: https://github.com/jonathanpeppers/memory-analyzers
    Context: https://www.nuget.org/packages/MemoryAnalyzers/0.1.0-beta.3
    
    This adds a new Roslyn analyzer that warns about the following cases.
    
     ## MA0001
    
    Don't define `public` events in `NSObject` subclasses:
    
    ```csharp
    public class MyView : UIView
    {
        // NOPE!
        public event EventHandler MyEvent;
    }
    ```
    
     ## MA0002
    
    Don't declare members in `NSObject` subclasses unless they are:
    
    * `WeakReference` or `WeakReference<T>`
    * Value types
    
    ```csharp
    class MyView : UIView
    {
        // NOPE!
        public UIView? Parent { get; set; }
    
        public void Add(MyView subview)
        {
            subview.Parent = this;
            AddSubview(subview);
        }
    }
    ```
    
     ## MA0003
    
    Don't subscribe to events inside `NSObject` subclasses unless:
    
    * It's your event via `this.MyEvent` or from a base type.
    * The method is `static`.
    
    ```csharp
    class MyView : UIView
    {
        public MyView()
        {
            var picker = new UIDatePicker();
            AddSubview(picker);
            picker.ValueChanged += OnValueChanged;
        }
    
        void OnValueChanged(object sender, EventArgs e) { }
    
        // Use this instead and it doesn't leak!
        //static void OnValueChanged(object sender, EventArgs e) { }
    }
    ```
    
    This is also on NuGet, but I just commited the package until we can get
    it added to the `dotnet-public` feed.
    
    Places with PRs in flight are marked with:
    
        [UnconditionalSuppressMessage("Memory", "MA0002", Justification = "FIXME: #16530")]
    
    A few are marked as "not an issue" with an explanation. Others mention a
    test with a proof they are OK.
    
    A few places I could actually *remove* `UnconditionalSuppressMessage`
    where I could improve the analyzer to ignore that case.
    jonathanpeppers committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    2e65626 View commit details
    Browse the repository at this point in the history
  9. Update dependencies from https://github.com/dotnet/xharness build 202…

    …30816.1 (#16890)
    
    Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
     From Version 8.0.0-prerelease.23407.2 -> To Version 8.0.0-prerelease.23416.1
    
    Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
    dotnet-maestro[bot] and dotnet-maestro[bot] committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    030fdc9 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    f6823ff View commit details
    Browse the repository at this point in the history
  11. Set Mapper/Handler ctor to protected on migration handlers (#16882)

    * Set Mapper/Handler ctor to proected on migration handlers
    
    * - fix Tizen APIs
    PureWeen committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    1364081 View commit details
    Browse the repository at this point in the history
  12. Add flag for selected item sync

    Mike Corsaro committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    e150748 View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2023

  1. Configuration menu
    Copy the full SHA
    74b3c38 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a7d2c9d View commit details
    Browse the repository at this point in the history
  3. [WinUI] Update shadow mask as part of shadow properties (#16895)

    * [WinUI] Update shadow mask as part of shadow properties
    
    The shadow mask needs to be updaded with the shadow properties, because if the size or shape of the object changed the mask needs to be updated accordingly.
    
    This fixes a regression, but brings back another problem: shadows won't work for borders with no content (#13944). The workaround for that scenario is to add content or a background color to the border.
    
    Fixes #16094
    
    * Use FireAndForget instead of async void
    
    * Fix spacing issues
    emaf committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    3f41775 View commit details
    Browse the repository at this point in the history
  4. [create-pull-request] automated change (#16907)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    8c76c27 View commit details
    Browse the repository at this point in the history
  5. Tests: Add support for connected component analysis (#16770)

    * Initial work on adding connected component analysis to tests
    
    * Fix tests
    
    * Simplify test code
    
    * Code doc and cleanup
    
    * Move boxview tests to layout tests
    
    This is really a Grid test
    
    * Remove extranous linefeed
    
    * Disable tests for now
    
    * Remove license headers
    
    * Remove unused code
    
    ---------
    
    Co-authored-by: Morten Nielsen <mort5161@esri.com>
    dotMorten and Morten Nielsen committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    302474a View commit details
    Browse the repository at this point in the history
  6. Improve the control over resource generation (#16845)

    * Improve the control over resource generation
    
    * Improve the control over resource generation
    
    * From comments
    
    * feedback
    mattleibow committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    ed2c958 View commit details
    Browse the repository at this point in the history
  7. Update VisualElement docs (#16754)

    * First set of comments
    
    * More comments
    
    * Finish!
    
    * PR Feedback
    
    * More PR feedback
    
    * Apply suggestions from code review
    
    Co-authored-by: Samantha Houts <samhouts@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Samantha Houts <samhouts@users.noreply.github.com>
    jfversluis and samhouts committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    adfd933 View commit details
    Browse the repository at this point in the history
  8. Add property for tapping on page to close soft input keyboard (#16530)

    * Add property for closing softkeyboard when tapping on page
    
    * - add android behavior
    
    * - add public API for tap outside
    
    * - cleanup code
    
    * - remove changes
    
    * - cleanup
    
    * - fix iOS
    
    * - add keyboard testing
    
    * - fix setup code
    
    * - cleanup code and tests
    
    * - scope HideSoftInput to a service and simplify
    
    * - fix up iOS
    
    * - ios fixes
    
    * - fix test
    
    * - move iOS Test
    
    * Docs nit
    
    * - fix ios
    
    * - cleanup loaded code
    
    * - fix
    
    * - set after frame is set
    
    * - additional timing fixes
    
    * - remove tests covered by the UI tests
    
    * - fix ios SearchHandler
    
    * Update HideSoftInputOnTappedPageTests.cs
    
    * - pop any dangling modals
    
    * - simplify down the code
    
    * - wire up
    
    * - rollback VE changes
    
    * - cleanup
    
    * - remove empty space
    
    * - remove excessive loading code for now
    
    * - remove changes on page
    
    * Update src/Core/src/Core/IPlatformEventsListener.cs
    
    * Update src/Core/src/Core/IPlatformEventsListener.cs
    
    * - fix keyboard APIs
    
    ---------
    
    Co-authored-by: Juan Diego Herrera <juherrera@microsoft.com>
    Co-authored-by: Samantha Houts <samhouts@users.noreply.github.com>
    3 people committed Aug 22, 2023
    Configuration menu
    Copy the full SHA
    99253e7 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    0f1d834 View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2023

  1. [create-pull-request] automated change (#16944)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    40ed78b View commit details
    Browse the repository at this point in the history
  2. [uitests] Bump versions and fix script (#16917)

    * [appium] Bump Versions
    
    * [appium] Some fixes to the script
    
    * [appium] Install also appium-doctor
    
    * [provisioning] Allow skip provision all android api sdks
    
    * Fix
    
    * [cake] Bump nuget tool
    
    * [uitests] Comment out CarouselView tests
    
    * Remove grep doesn't exist on windows
    rmarinho committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    6aaf343 View commit details
    Browse the repository at this point in the history
  3. [windows] Fixed CarouselView items rendering (#16842)

    * [windows] Added ArrangeOverride override and changed MeasureOverride in ItemContentControl to not call base when the ItemHeight and ItemWidth are defined
    
    When the height and width of the items are already defined, it's likely that the base.MeasureOverride (WinUI) call reduces the original size, causing issues like the items in a CarouselView not fitting the container, which causes more items to be displayed at once.
    This fix makes sure that we always return the max height and width between the measured override and the existing items height and width.
    Also, adding ArrangeOverride from WinUI base class to control the layout correctly and completely on our side.
    
    Fixes Bug: #12567
    
    * Added Appium test for CarouselView to validate fix for bug #12567
    
    * Fix RS0016 + added inheritdoc
    
    * Fixed return statement on ArrangeOverride according to PR feedback
    
    * Fixed CarouselViewHandler resizing logic according to PR feedback
    
    * Attempt to fix test errors
    
    ---------
    
    Co-authored-by: Juan Diego Herrera <juherrera@microsoft.com>
    mauroa and jknaudt21 committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    862fa07 View commit details
    Browse the repository at this point in the history
  4. [workload] Only install the WinUI pack on Windows (#16937)

    When building on macOS I've been hitting a workload install issue:
    
        Workload installation failed. Rolling back installed packs...
          Rolling back pack Microsoft.Maui.Graphics.Win2D.WinUI.Desktop installation...
          Workload installation failed: microsoft.maui.graphics.win2d.winui.desktop::7.0.100-dev is not found in NuGet feeds ...
    
    The project that produces this pack doesn't seem to be built on macOS,
    and it's not available in the local artifacts feed after a build.
    
    We can take advantage of [alias packs][0] to fix this issue.  This will
    also simplify workload installs for customers not on Windows, as the
    pack will now be ignored entirely on other platforms.
    
    [0]: https://github.com/dotnet/designs/blob/37718c66f403f7a5d25517cdac3ec2d2553100a6/accepted/2020/workloads/workload-manifest.md#alias-packs
    pjcollins committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    4d21500 View commit details
    Browse the repository at this point in the history
  5. [core] use factory methods for registering services (#16741)

    * [core] use factory methods for registering services
    
    In .NET 8 Preview 7, we noticed a regression in startup around:
    
        .NET 8 Preview 6:
        45.35ms microsoft.maui!Microsoft.Maui.Hosting.MauiAppBuilder.Build()
        .NET 8 Preview 7:
        62.17ms microsoft.maui!Microsoft.Maui.Hosting.MauiAppBuilder.Build()
    
    This may have been related to:
    
    dotnet/runtime#87183
    
    Which should be improved by:
    
    dotnet/runtime#89964
    
    In reviewing the traces, we noticed several places where MAUI was
    registering services like:
    
        services.AddTransient<IFoo, Foo>();
    
    Where we could instead do:
    
        services.AddTransient<IFoo>(_ => new Foo());
    
    Where this registration avoids any System.Reflection work at startup.
    Microsoft.Extensions.DI can just call the factory method instead.
    
    I expanded upon `BannedSymbols.txt` like we did in e7812b0, to ban
    cases of `AddTransient` and `AddScoped` that might be used accidentally.
    
    This resulted in banning the slow versions of these APIs like:
    
        Microsoft.Maui.Hosting.ImageSourceServiceCollectionExtensions.AddService
        Microsoft.Maui.Hosting.MauiHandlersCollectionExtensions.AddHandler
        Microsoft.Maui.Hosting.MauiHandlersCollectionExtensions.TryAddHandler
    
    I also introduced public, fast versions of methods in
    `MauiHandlersCollectionExtensions`.
    
    With this change in place, I could see the difference in:
    
        Before:
        11.24ms microsoft.extensions.dependencyinjection!Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine..ctor
        After:
         6.29ms microsoft.extensions.dependencyinjection!Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine..ctor
    
    Which resulted in an overall faster startup of a `dotnet new maui` app
    on a Pixel 5:
    
        Average(ms): 691
        Std Err(ms): 3.00370142028502
        Std Dev(ms): 9.49853789918334
        Average(ms): 687.8
        Std Err(ms): 4.04365071576553
        Std Dev(ms): 12.7871463239892
    
    This is an average of 10 runs. Note that this was built with main, and
    so we have an out-of-date AOT profile compared to the `net8.0` branch.
    
    * Remove CellRenderer registration
    jonathanpeppers committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    b0bba51 View commit details
    Browse the repository at this point in the history
  6. Add a timeout to the appium server startup (#16939)

    Co-authored-by: Rui Marinho <me@ruimarinho.net>
    sbanni and rmarinho committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    3129480 View commit details
    Browse the repository at this point in the history
  7. Handlers should not implement IImageSourcePartSetter directly (#16901)

    * Handlers mustn't implement IImageSourcePartSetter
    
    * Safer
    
    * Updates per feedback
    mattleibow committed Aug 23, 2023
    Configuration menu
    Copy the full SHA
    69a166b View commit details
    Browse the repository at this point in the history

Commits on Aug 24, 2023

  1. [create-pull-request] automated change (#16968)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] committed Aug 24, 2023
    Configuration menu
    Copy the full SHA
    0683e56 View commit details
    Browse the repository at this point in the history
  2. [WinUI] Fix exception when adding items to a linear layout Collection…

    …View (#16958)
    
    When having a `CollectionView` with a Linear horizontal layout in a `Grid` with a row definition set to Auto, adding an item would make rezising the inner `ItemsWrapGrid` enter in an inifinite loop making the height grow indefinetly. The same would happen for for vertical/column/width.
    
    The problem was that when using a linear layout the wrap grid should never have more than one row (it shouldn't wrap the items after exceding its size), regardless of the space available, but the wrap grid was not aware of this. The cycle happened when the wrap grid total height (or width, depending on the orientation) increased, so then we update the item height, but as span is 1 because of linear layout, we ended up setting the total height as item height, forcing the wrap grid to grow again.
    
    The fix is simply configure the `ItemsWrapGrid` to restrict the number of rows/columns it can have based on what's set for Span.
    
    Fixes #16320
    emaf committed Aug 24, 2023
    Configuration menu
    Copy the full SHA
    01fc5eb View commit details
    Browse the repository at this point in the history
  3. Add interface to expose out UIView methods (#16868)

    * Add interface to expose out UIView methods
    
    * - add to API txt files and clean up
    
    * - fix test timing to only fire after page has finished layout
    
    * - cleanup code
    
    * - infest all the places
    
    * - fix tests to use ToPlatform
    
    * - cleanup code
    
    * - fix accessibility test
    
    * - fix accessibility checks to use
    
    * - fix justifications
    PureWeen committed Aug 24, 2023
    Configuration menu
    Copy the full SHA
    7c035c6 View commit details
    Browse the repository at this point in the history
  4. Revert "Remove TargetIdiom (#13090)" (#16982)

    This reverts commit 50602da.
    mattleibow committed Aug 24, 2023
    Configuration menu
    Copy the full SHA
    fa5d271 View commit details
    Browse the repository at this point in the history
  5. Fix so updating FlyoutItemIsVisible hides/shows shell menu item (#16942)

    MenuShellItem wraps a MenuItem. Shell related properties should be
    synchronized between the two objects, always the same values.
    Add code so that FlyoutItemIsVisible is also synchronized. Most properties are
    synchroned via bindings, but FlyoutItemIsVisible is an attached property so
    we need to have code that runs on property changes instead.
    
    Fixes issue #16929
    
    Note that normally the MenuItem is specified in XAML while MenuShellItem is accessed
    in code behind, thus the need to synchronize when FlyoutItemIsVisible is initialized in XAML
    then updated later via code behind, like in the bug.
    BretJohnson committed Aug 24, 2023
    Configuration menu
    Copy the full SHA
    108d1bc View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    05a1902 View commit details
    Browse the repository at this point in the history
  7. Present to UIWindow associated with passed in page (#16983)

    * Present to UIWindow associated with passed in page
    
    * - only run tests on iOS
    
    * Update Issues16321.xaml.cs
    PureWeen committed Aug 24, 2023
    Configuration menu
    Copy the full SHA
    4e269db View commit details
    Browse the repository at this point in the history

Commits on Aug 25, 2023

  1. [android] Fixed ListView visibility and opacity on Android (#16941)

    * [android] Fixed ListView visibility and opacity on Android
    
    Visibility and Opacity settings were not working correctly when the control was inside a container.
    For the case of visibility, it was only being set for the container when it needed to be set for both the container and the control.
    For the case of opacity, it was also only being set for the container, which could reduce the opacity of the control as a side effect because it's a value affected by its parent value. In this case, we need to ensure the control has 100% opacity so it applies and uses the correct value to the container.
    
    Fixes:
    #15826
    #15357
    
    * Added Appium tests for Visibility issues #15826 and #15357
    
    * Added Appium tests for Opacity issues #12211
    
    * Applied PR feedback: Remove added items from Controls.Sample.UITests.csproj
    mauroa committed Aug 25, 2023
    Configuration menu
    Copy the full SHA
    58498f8 View commit details
    Browse the repository at this point in the history
  2. [android] fix DI registration for Frame, ListView, TableView (#16989)

    This partially reverts b0bba51.
    
    When running:
    
        .\bin\dotnet\dotnet.exe build src\Controls\samples\Controls.Sample\Maui.Controls.Sample.csproj -f net7.0-android -t:Run
    
    The app crashes on the "Compatibility" screen with:
    
        System.InvalidOperationException: No service for type 'Android.Content.Context' has been registered.
    
    These are caused by the change:
    
        --handlersCollection.AddHandler(typeof(Frame), typeof(Handlers.Compatibility.FrameRenderer));
        ++handlersCollection.AddHandler<Frame>(svc => new Handlers.Compatibility.FrameRenderer(svc.GetRequiredService<Android.Content.Context>()));
    
    It turns out this code path only works because:
    
    1. Microsoft.Extensions.DI throws a `MissingMethodException`
    
    2. MAUI has fallback logic to catch this and call:
    
        return (IElementHandler)Extensions.DependencyInjection.
            ActivatorUtilities.CreateInstance(mauiContext.Services, handlerType, mauiContext.Context);
    
    `ActivatorUtilities` is part of Microsoft.Extensions.DI.
    
    For now, let's just revert this change for Android for these three
    types: `Frame`, `ListView`, and `TableView`.
    
    I spend some time trying to "unwind" this and avoid the
    `MissingMethodException` on startup. I couldn't solve it yet, but plan
    to come back to it later.
    jonathanpeppers committed Aug 25, 2023
    Configuration menu
    Copy the full SHA
    136f21d View commit details
    Browse the repository at this point in the history
  3. [create-pull-request] automated change (#16993)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] committed Aug 25, 2023
    Configuration menu
    Copy the full SHA
    2f666ab View commit details
    Browse the repository at this point in the history
  4. [workload] Move default item updates to workload sdk (#16990)

    Fixes: #16501
    Context: 95913ed
    Context: 2dcc148
    
    Attempts to improve xaml.cs file nesting by moving xaml.cs item updates
    back into the workload SDK.  Some of this logic was moved out of
    `Microsoft.Maui.Sdk.After.targets` in commit 95913ed, and subsequently
    moved out of the workload and into a NuGet package in commit 2dcc148.
    
    I believe it should be harmless to move these default item properties
    and the Compile / None item updates back into the workload SDK to avoid
    solution explorer display issues on first run.
    pjcollins committed Aug 25, 2023
    Configuration menu
    Copy the full SHA
    d85704d View commit details
    Browse the repository at this point in the history
  5. Use a fixed WinUI window size for Appium test app (#16956)

    * Use a fixed WinUI window size for Appium test app
    
    This makes the screenshots more deterministic, more likely
    to match between dev machines and CI.
    
    * Also fix window size for catalyst
    
    * Update size to 1024x768 and fix catalyst
    
    * Crop title bar off for WinUI screenshots
    
    * Force light theme for WinUI, so screenshots are deterministc
    
    * Update baseline WinUI images, for new deterministic settings
    
    * Fix build warning on non-desktop platforms
    
    * Add mission Issue16094 iOS snapshot file
    
    * Add mission Issue16094 Android snapshot file
    BretJohnson committed Aug 25, 2023
    Configuration menu
    Copy the full SHA
    cdaa4e5 View commit details
    Browse the repository at this point in the history
  6. Default paths for Appium projects, to simplify run steps (#16763)

    * Default paths for Appium projects, to simplify run steps
    
    Default the paths for UITest projects so that the user doesn't need
    to specify them manually. Once this is merged I'll update the
    instructions in https://github.com/dotnet/maui/wiki/UITests to
    remove the --project and --appproject arguments from the
    run steps. That makes them much simpler and avoids the issue
    of them being hardcoded to Rui's home directory.
    
    * Undo one of the windows changes, as breaks devices tests
    
    * Only apply defaults when target is uitest
    
    Also, improve error messages for windows/catalyst/ios similar
    to android, giving a user friendly  error if the exe/app to be tested
    isn't found (likely because it's not built), instead of an NRE.
    BretJohnson committed Aug 25, 2023
    Configuration menu
    Copy the full SHA
    2ec2e0b View commit details
    Browse the repository at this point in the history
  7. Add Windows unpackaged DeviceTests in CI (#17001)

    * Add Windows unpackaged DeviceTests in CI
    
    * Update device-tests.yml
    jfversluis committed Aug 25, 2023
    Configuration menu
    Copy the full SHA
    be144c7 View commit details
    Browse the repository at this point in the history
  8. [Android] Fix Keyboard.Numeric issue (#16163)

    * Fix Keyboard.Numeric issue on DisplayPromptAsync on Android
    
    * Remove AlertsPage sample
    
    ---------
    
    Co-authored-by: Rachel Kang <rachel.j.kang@gmail.com>
    jsuarezruiz and rachelkang committed Aug 25, 2023
    1 Configuration menu
    Copy the full SHA
    5ac1e80 View commit details
    Browse the repository at this point in the history
  9. Invalidate shell tab title on Windows (#16593)

    Co-authored-by: Rui Marinho <me@ruimarinho.net>
    jsuarezruiz and rmarinho committed Aug 25, 2023
    Configuration menu
    Copy the full SHA
    d933b72 View commit details
    Browse the repository at this point in the history
  10. Fix Flyout Crash (Windows) (#16800)

    * Fix flyout crash due to invalid casting of child
    
    * Add tests
    
    * Add additional tests, PR feedback
    
    * Fix missing call to `RemoveLogicalChild`
    
    * Update Clear
    
    ---------
    
    Co-authored-by: Mike Corsaro <mikecorsaro@microsoft.com>
    Foda and Mike Corsaro committed Aug 25, 2023
    Configuration menu
    Copy the full SHA
    d77142a View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2023

  1. [core] factory methods for registering services, part 2 (#17004)

    b0bba51 was incomplete, in that it missed registrations with 1 type
    argument:
    
        builder.Services.AddScoped<HideSoftInputOnTappedChangedManager>();
    
    So we need to add entries with "`1" for all of the banned methods:
    
        ++M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddScoped`1(Microsoft.Extensions.DependencyInjection.IServiceCollection);Use a Factory method to register the service instead
        M:Microsoft.Extensions.DependencyInjection.ServiceCollectionServiceExtensions.AddScoped`2(Microsoft.Extensions.DependencyInjection.IServiceCollection);Use a Factory method to register the service instead
    
    We can improve startup time by using a factory method instead:
    
        builder.Services.AddScoped(_ => new HideSoftInputOnTappedChangedManager());
    
    This also found a couple more calls to fix throughout .NET MAUI.
    jonathanpeppers committed Aug 26, 2023
    Configuration menu
    Copy the full SHA
    79a44ff View commit details
    Browse the repository at this point in the history

Commits on Aug 27, 2023

  1. [create-pull-request] automated change (#17017)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] committed Aug 27, 2023
    Configuration menu
    Copy the full SHA
    43699ae View commit details
    Browse the repository at this point in the history
  2. Ignore failures from newly added UITests temporarily (#17003)

    * Ignore failures from WhenQueryingCarouselItemsInViewThenSingleItemIsRetrieved
    
    * Update Ignore to include all platformss
    
    * Center window on WinUI, so it's always fully on screen in CI
    
    * Set agent screen resolution bigger for UI tests
    
    * Update baseline snapshots for bigger screen
    
    * Just set screen resolution on Windows
    
    * Ignore Issue16320 on Android
    BretJohnson committed Aug 27, 2023
    Configuration menu
    Copy the full SHA
    c217838 View commit details
    Browse the repository at this point in the history
  3. Fix Android text alignment in migrated projects (#16986)

    * Fix Android text alignment in migrated projects
    
    * Add (manual) device tests
    
    * Add clarifying comment
    
    * [tentative] Move input tests to generic code
    
    * Wrap up tests
    
    * Make masks constants
    
    * Fix title to be consistent with other test names
    jknaudt21 committed Aug 27, 2023
    Configuration menu
    Copy the full SHA
    8f56077 View commit details
    Browse the repository at this point in the history
  4. Fix the order of logical modifications (#17020)

    * Fix the order of logical modifications
    
    * - keep in sync while removing
    
    * - fix clear
    PureWeen committed Aug 27, 2023
    Configuration menu
    Copy the full SHA
    1884430 View commit details
    Browse the repository at this point in the history

Commits on Aug 28, 2023

  1. [create-pull-request] automated change (#17025)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    a7a6485 View commit details
    Browse the repository at this point in the history
  2. Update dependencies from https://github.com/dotnet/xharness build 202…

    …30821.1 (#17030)
    
    Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit
     From Version 8.0.0-prerelease.23416.1 -> To Version 8.0.0-prerelease.23421.1
    
    Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
    dotnet-maestro[bot] and dotnet-maestro[bot] committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    95c3fb7 View commit details
    Browse the repository at this point in the history
  3. Bump Microsoft.CodeAnalysis.NetAnalyzers from 7.0.3 to 7.0.4 (#17032)

    Bumps [Microsoft.CodeAnalysis.NetAnalyzers](https://github.com/dotnet/roslyn-analyzers) from 7.0.3 to 7.0.4.
    - [Release notes](https://github.com/dotnet/roslyn-analyzers/releases)
    - [Changelog](https://github.com/dotnet/roslyn-analyzers/blob/main/PostReleaseActivities.md)
    - [Commits](https://github.com/dotnet/roslyn-analyzers/commits)
    
    ---
    updated-dependencies:
    - dependency-name: Microsoft.CodeAnalysis.NetAnalyzers
      dependency-type: direct:production
      update-type: version-update:semver-patch
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    70a6fd6 View commit details
    Browse the repository at this point in the history
  4. Add GetPosition method to DragStartingEventArgs, DragEventArgs, and D…

    …ropEventArgs (#16335)
    
    * Implemented on Android and Windows
    
    * Added Position property to DragStartingEventArgs
    
    * Implement drag location for iOS
    
    * Document DragStartingEventArgs
    
    * Document DragEventArgs
    
    * Mild refactor + document DragGestureRecognizer
    
    * Avoid duplicated code
    
    * avoid repetitive code
    
    * More changes
    
    * Fix build errors
    
    * Update comment
    
    * Address PR comments + more docs
    
    * Remove TODO
    
    * Use cleaner default param rather than new point
    
    * Apply suggestions from code review
    
    Co-authored-by: Manuel de la Pena <mandel@microsoft.com>
    
    * Add locations to UI drag and drop test
    
    * Add UI test, fix Windows
    
    * Refactor DragStarting Event args
    
    * Make DragGestureRecognizer support nullable
    
    * DragStarting Android & Windows
    
    Docs
    
    DragStarting Android & Windows
    
    * Drag Android & Windows
    
    * iOS DragStart & Drag
    
    * Began refactor of UITest
    
    * UI Test Improvement
    
    * Changes in Tizen PublicAPI
    
    * Mild improvements, revert making parent view be sender
    
    * Fix parents + typo
    
    * Fix Tizen Unshipped APIs
    
    * Add position to DropEventArgs
    
    * Drop UI Tests + Samples
    
    * Delete DropEventArgs.xml
    
    * Revert "Changes in Tizen PublicAPI"
    
    This reverts commit 7c08990.
    
    * Fix tizen docs
    
    * Fix tize duplicated api
    
    * Fix tizen again
    
    * Fix casting error
    
    * Apply PR feedback
    
    * Delete VisualElementTracker
    
    It wasn't doing anything
    
    * Address PR Comments
    
    ---------
    
    Co-authored-by: Juan Diego Herrera <juherrera@microsoft.com>
    Co-authored-by: Manuel de la Pena <mandel@microsoft.com>
    Co-authored-by: Gerald Versluis <gerald.versluis@microsoft.com>
    4 people committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    a3c248e View commit details
    Browse the repository at this point in the history
  5. [macOS] Implement IsEnabled property in MenuFlyoutItems (#14920)

    * Implement IsEnabled property in MenuFlyoutItems on Catalyst
    
    * Auto-format source code
    
    * More samples
    
    * Updated Impl
    
    * More refactoring
    
    * Auto-format source code
    
    * Updated sample
    
    * Updated sample
    
    * Updated sample
    
    * Updated sample
    
    * Propagate IsEnabled on MenuItem
    
    * Update src/Core/src/Handlers/MenuBarItem/MenuBarItemHandler.cs
    
    Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
    
    * Clear up ios/macos divide
    
    ---------
    
    Co-authored-by: GitHub Actions Autoformatter <autoformat@example.com>
    Co-authored-by: Javier Suárez <6755973+jsuarezruiz@users.noreply.github.com>
    Co-authored-by: E.Z. Hart <hartez@gmail.com>
    Co-authored-by: E.Z. Hart <hartez@users.noreply.github.com>
    Co-authored-by: Matthew Leibowitz <mattleibow@live.com>
    6 people committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    cce1a2a View commit details
    Browse the repository at this point in the history
  6. Remove pinning to NET7 SDK (#17035)

    - The main branch builds find with the NET 8 sdk so there's no reason to require/pin it to NET7
    PureWeen committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    60bdea7 View commit details
    Browse the repository at this point in the history
  7. [android] CollectionView logical children grows with Header/Footer (#…

    …17012)
    
    * [android] CollectionView logical children grows with Header/Footer
    
    Fixes: #16961
    
    Debugging the `ItemsSourceDoesNotLeak()` test with a new `Header` and
    `Footer` on Android, there was some very odd behavior...
    
    At the end of the test, `_logicalChildren` contained 9 items!
    
        Header
        Footer
        Header
        Footer
        Header
        null
        null
        null
        Footer
    
    Where I would expect it to contain 5?!?
    
    It appears the problem is:
    
    * `CollectionView.ItemsSource` changes
    
    * We notify Android's `RecyclerView` to refresh
    
    * `RecyclerView` calls `OnCreateViewHolder()` for the header, footer,
      and all rows.
    
    * `CreateHeaderFooterViewHolder()` is called again for the header &
      footer.
    
    * Duplicate `viewHolder.View` items are added as logical children.
    
    To fix this, an idea:
    
    * Create a new `internal ContainsLogicalChild()` method
    
    * Call this before adding the same `View` in
      `CreateHeaderFooterViewHolder()`
    
    This isn't the *best*, because it will iterate over the
    `_logicalChildren` to decide if the list contains the view. But this is
    better than what strange behavior might result from this?
    
    * Check `viewHolder.View.Parent != ItemsView`
    jonathanpeppers committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    df1fb2d View commit details
    Browse the repository at this point in the history
  8. fix(tabbar): Fixed the tab bar not hiding/showing if property changed

    The tabbar on Windows wouldn't toggle visibility if modified, and would only hide/show on current item change
    Mike Corsaro committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    311745e View commit details
    Browse the repository at this point in the history
  9. Adjust whitespace

    Mike Corsaro committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    e57a8cf View commit details
    Browse the repository at this point in the history
  10. Fixed pin display mode not updating

    Mike Corsaro committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    b4770be View commit details
    Browse the repository at this point in the history
  11. Wire up MapMenuItems

    Mike Corsaro committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    83e1d8c View commit details
    Browse the repository at this point in the history
  12. Removed extra call to UpdateCurrentItem

    Added additional tests
    Mike Corsaro committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    7ebd562 View commit details
    Browse the repository at this point in the history
  13. Add flag for selected item sync

    Mike Corsaro committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    01582a5 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    0ff0881 View commit details
    Browse the repository at this point in the history
  15. Rebase onto main

    Mike Corsaro committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    c25d684 View commit details
    Browse the repository at this point in the history
  16. Merge branch 'foda/TabBarVisibility' of https://github.com/dotnet/maui

    …into foda/TabBarVisibility
    Mike Corsaro committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    c1a0e5a View commit details
    Browse the repository at this point in the history