Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1219,14 +1219,18 @@ function Format-Markdown-Output {
$title = $rawTitle.Replace('|', '\|')
$link = "[#$($pr.Number)]($($pr.URL))"
$turnCol = "$($pr.TurnIcon) $($pr.TurnDetail)"
# Wrap author handles in backticks so GitHub renders them as inline code
# rather than as @mentions — this issue is for MAUI team triage tracking,
# not a notification firehose to every PR author each day.
$author = "``@$($pr.Author)``"
if ($showMilestone -and $showTurn) {
[void]$md.AppendLine("| $link | $title | @$($pr.Author) | $($pr.Milestone) | $turnCol | $($pr.Platform) | $($pr.Age)d |")
[void]$md.AppendLine("| $link | $title | $author | $($pr.Milestone) | $turnCol | $($pr.Platform) | $($pr.Age)d |")
} elseif ($showMilestone) {
[void]$md.AppendLine("| $link | $title | @$($pr.Author) | $($pr.Milestone) | $($pr.Platform) | $($pr.Age)d | $($pr.Updated)d ago |")
[void]$md.AppendLine("| $link | $title | $author | $($pr.Milestone) | $($pr.Platform) | $($pr.Age)d | $($pr.Updated)d ago |")
} elseif ($showTurn) {
[void]$md.AppendLine("| $link | $title | @$($pr.Author) | $turnCol | $($pr.Platform) | $($pr.Age)d |")
[void]$md.AppendLine("| $link | $title | $author | $turnCol | $($pr.Platform) | $($pr.Age)d |")
} else {
[void]$md.AppendLine("| $link | $title | @$($pr.Author) | $($pr.Platform) | $($pr.Age)d | $($pr.Updated)d ago |")
[void]$md.AppendLine("| $link | $title | $author | $($pr.Platform) | $($pr.Age)d | $($pr.Updated)d ago |")
}
}
[void]$md.AppendLine("")
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/pr-review-queue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ concurrency:
jobs:
generate-report:
runs-on: ubuntu-latest
if: github.event_name != 'pull_request'
# Guard: only run in dotnet/maui — prevents the scheduled run from firing
# in forks and pinging fork owners with duplicate queue issues.
if: github.repository_owner == 'dotnet' && github.event_name != 'pull_request'
permissions:
contents: read
issues: write
Expand Down Expand Up @@ -86,7 +88,7 @@ jobs:
# Dry-run on PRs: validate the script works without creating issues
validate:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
if: github.repository_owner == 'dotnet' && github.event_name == 'pull_request'
permissions:
contents: read
pull-requests: read
Expand Down
10 changes: 8 additions & 2 deletions eng/pipelines/ci-copilot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,10 @@ stages:
skipAndroidPlatformApis: true
onlyAndroidPlatformDefaultApis: true
skipAndroidEmulatorImages: ${{ ne(parameters.Platform, 'android') }}
skipAndroidCreateAvds: ${{ ne(parameters.Platform, 'android') }}
# AVD is created by the inline 'Create AVD and boot Android Emulator' script below
# with specific config (playstore image variant, partition shrink, ADB key pre-auth)
# that ProvisionAndroidSdkAvdCreateAvds doesn't replicate.
skipAndroidCreateAvds: true
androidEmulatorApiLevel: '30'
skipSimulatorSetup: ${{ or(eq(parameters.Platform, 'android'), eq(parameters.Platform, 'windows'), eq(parameters.Platform, 'catalyst')) }}
skipCertificates: true
Expand Down Expand Up @@ -871,7 +874,10 @@ stages:
skipAndroidPlatformApis: true
onlyAndroidPlatformDefaultApis: true
skipAndroidEmulatorImages: ${{ ne(parameters.Platform, 'android') }}
skipAndroidCreateAvds: ${{ ne(parameters.Platform, 'android') }}
# AVD is created by the inline 'Create AVD and boot Android Emulator' script below
# with specific config (playstore image variant, partition shrink, ADB key pre-auth)
# that ProvisionAndroidSdkAvdCreateAvds doesn't replicate.
skipAndroidCreateAvds: true
androidEmulatorApiLevel: '30'
skipSimulatorSetup: ${{ or(eq(parameters.Platform, 'android'), eq(parameters.Platform, 'windows'), eq(parameters.Platform, 'catalyst')) }}
skipCertificates: true
Expand Down
9 changes: 9 additions & 0 deletions eng/pipelines/common/variables.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@ variables:
value: 26.0.1
- name: POWERSHELL_VERSION
value: 7.4.0
# Workaround for PowerShell/PowerShell#20802 (open since Nov 2023):
# pwsh 7.4.x intermittently aborts at startup on macOS with
# 'Call to procargs failed with errno 5'
# because AttemptExecPwshLogin() races on sysctl(KERN_PROCARGS2).
# Setting __PWSH_LOGIN_CHECKED makes pwsh short-circuit the login-shell
# detection that triggers the racy syscall (see Program.cs in PowerShell repo).
# Hit on internal dnceng dotnet-maui build 2990586 (release/11.0.1xx-preview5).
- name: __PWSH_LOGIN_CHECKED
value: '1'
# Localization variables
- name: LocBranchPrefix
value: 'loc-hb'
Expand Down
2 changes: 1 addition & 1 deletion src/Essentials/src/Geolocation/Geolocation.android.cs
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ public async Task<bool> StartListeningForegroundAsync(GeolocationListeningReques
var minTimeMilliseconds = (long)request.MinimumTime.TotalMilliseconds;

foreach (var provider in listeningProviders)
LocationManager.RequestLocationUpdates(provider, minTimeMilliseconds, providerInfo.Accuracy, continuousListener, looper);
LocationManager.RequestLocationUpdates(provider, minTimeMilliseconds, 0, continuousListener, looper);

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[major] Regression Prevention — This bug fix changes Android foreground listening semantics but has no regression coverage. Please add an Android Essentials device/integration test or documented manual test coverage that proves StartListeningForegroundAsync continues raising LocationChanged when the reported position remains within the previous 50-100m accuracy-distance threshold. Without that, this can regress back to treating desired accuracy as minDistance.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added documented manual regression coverage to the PR description.

I did not add an automated Android Essentials device test for this servicing fix because proving this exact behavior would require controlling sub-50m mock location updates from the test app/device environment, and the current Essentials device-test setup does not provide a reliable mock-location path for Helix. The documented scenario validates the old failure mode directly: start foreground listening with GeolocationAccuracy.Best and a 1-second cadence, then send or perform multiple location changes within 50m and confirm LocationChanged continues firing instead of being gated by the old accuracy-distance threshold.


return true;

Expand Down
Loading