Private/ScriptBlocks.ps1


$ScriptBlockCheckRadioOff = {
  if (-not (Get-RadioState | Where-Object { $_.Kind -eq 'WiFi' -and $_.State -eq 'On' })) {
    return [System.Management.Automation.CompletionResult]::new(
      '#Radio_is_OFF#', 
      '--- RADIO IS OFF ---', 
      'ParameterValue', 
      'Use: Get-RadioState | Set-RadioState -SetState On'
    )
  }
}
$ScriptBlockCheckLocationAccess = {
  if ((Request-LocationPermission -Silent) -ne [Windows.Devices.Geolocation.GeolocationAccessStatus]::Allowed) {
    return [System.Management.Automation.CompletionResult]::new(
      '#LocationBlocked#', 
      '--- LocationBlocked ---', 
      'ParameterValue', 
      'Use: Enable Desktop-App Location in Privacy & Security \ Location'
    )
  }
}
$ScriptblockSmartScan = { 
  Param([int]$ParentId=0,[Switch]$TimeoutBlock)
  # --- SMART SCAN LOGICA ---
  $counts = foreach ( $a in Get-WiFiAvailableAdapter ) { ($a.NetworkReport.AvailableNetworks | Measure-Object).Count } 
  $NewScanTrigerTime = if(-not $TimeoutBlock){(Get-Date).AddMinutes(-5)}else{(Get-Date).AddMinutes(-30)} 
  $cacheIsOld = ($null -eq $script:WiFiLastScanTime -or $script:WiFiLastScanTime -lt $NewScanTrigerTime )
  $anyAdapterEmpty = ($counts -le 1)
  if ($cacheIsOld -or $anyAdapterEmpty) {
    $null = Search-WifiNetworksPrivate -ParentId $ParentId
  }
}
$ScriptBlockCheckWifiRadioWarn = {
  if ((Get-RadioState | Where-Object { $_.Kind -eq 'Wifi' }).State -contains 'Off') {
    Write-Warning "A WiFi radio is off"
  }
}
#line is for debugging
$null = $ScriptBlockCheckWifiRadioWarn,  $ScriptBlockCheckLocationAccess, $ScriptblockSmartScan,$ScriptBlockCheckRadioOff