From 66808f683f599eab7dcca95170d45e18402ffa45 Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Tue, 8 Dec 2020 17:26:17 +0200 Subject: [PATCH 01/56] Some improvements to the Android pickers (#1576) * Do not use resolved content paths on Android 10+ The OS permissions changed and this is no longer possible. Fixes #1574 * Use the external storage if possible --- .../FileSystem/FileSystem.android.cs | 48 +++++++++++-------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/Xamarin.Essentials/FileSystem/FileSystem.android.cs b/Xamarin.Essentials/FileSystem/FileSystem.android.cs index e771a2ac7..7617f9cce 100644 --- a/Xamarin.Essentials/FileSystem/FileSystem.android.cs +++ b/Xamarin.Essentials/FileSystem/FileSystem.android.cs @@ -72,45 +72,51 @@ internal static Java.IO.File GetEssentialsTemporaryFile(Java.IO.File root, strin return tmpFile; } - internal static string EnsurePhysicalPath(AndroidUri uri) + internal static string EnsurePhysicalPath(AndroidUri uri, bool requireExtendedAccess = true) { // if this is a file, use that if (uri.Scheme.Equals(UriSchemeFile, StringComparison.OrdinalIgnoreCase)) return uri.Path; // try resolve using the content provider - var absolute = ResolvePhysicalPath(uri); + var absolute = ResolvePhysicalPath(uri, requireExtendedAccess); if (!string.IsNullOrWhiteSpace(absolute) && Path.IsPathRooted(absolute)) return absolute; // fall back to just copying it - absolute = CacheContentFile(uri); - if (!string.IsNullOrWhiteSpace(absolute) && Path.IsPathRooted(absolute)) - return absolute; + var cached = CacheContentFile(uri); + if (!string.IsNullOrWhiteSpace(cached) && Path.IsPathRooted(cached)) + return cached; throw new FileNotFoundException($"Unable to resolve absolute path or retrieve contents of URI '{uri}'."); } - static string ResolvePhysicalPath(AndroidUri uri) + static string ResolvePhysicalPath(AndroidUri uri, bool requireExtendedAccess = true) { - if (Platform.HasApiLevelKitKat && DocumentsContract.IsDocumentUri(Platform.AppContext, uri)) + if (uri.Scheme.Equals(UriSchemeFile, StringComparison.OrdinalIgnoreCase)) { - var resolved = ResolveDocumentPath(uri); - if (File.Exists(resolved)) - return resolved; - } + // if it is a file, then return directly - if (uri.Scheme.Equals(UriSchemeContent, StringComparison.OrdinalIgnoreCase)) - { - var resolved = ResolveContentPath(uri); + var resolved = uri.Path; if (File.Exists(resolved)) return resolved; } - else if (uri.Scheme.Equals(UriSchemeFile, StringComparison.OrdinalIgnoreCase)) + else if (!requireExtendedAccess || !Platform.HasApiLevel(29)) { - var resolved = uri.Path; - if (File.Exists(resolved)) - return resolved; + // if this is on an older OS version, or we just need it now + + if (Platform.HasApiLevelKitKat && DocumentsContract.IsDocumentUri(Platform.AppContext, uri)) + { + var resolved = ResolveDocumentPath(uri); + if (File.Exists(resolved)) + return resolved; + } + else if (uri.Scheme.Equals(UriSchemeContent, StringComparison.OrdinalIgnoreCase)) + { + var resolved = ResolveContentPath(uri); + if (File.Exists(resolved)) + return resolved; + } } return null; @@ -236,7 +242,11 @@ static string CacheContentFile(AndroidUri uri) filename = Path.ChangeExtension(filename, extension); // create a temporary file - var tmpFile = GetEssentialsTemporaryFile(Platform.AppContext.CacheDir, filename); + var hasPermission = Permissions.IsDeclaredInManifest(global::Android.Manifest.Permission.WriteExternalStorage); + var root = hasPermission + ? Platform.AppContext.ExternalCacheDir + : Platform.AppContext.CacheDir; + var tmpFile = GetEssentialsTemporaryFile(root, filename); // copy to the destination using var dstStream = File.Create(tmpFile.CanonicalPath); From 392087db779ae65112299e21e038891ebe0b92db Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Fri, 11 Dec 2020 17:08:28 +0200 Subject: [PATCH 02/56] Update azure-pipelines.yml (#1581) --- azure-pipelines.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3cdd99492..1658ddea1 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -117,10 +117,27 @@ stages: - bash: sh -c "echo \"y\" | $ANDROID_HOME/tools/bin/sdkmanager \"system-images;android-21;google_apis;x86\"" displayName: Install the Android emulators + - template: .ci/build.yml@components + parameters: + name: devicetests_android_api_22 + runChecks: false + displayName: Android API 22 + publishOutputSuffix: '-android22' + windowsImage: '' + areaPath: $(AREA_PATH) + verbosity: diagnostic + cakeFile: DeviceTests/build.cake + cakeTarget: test-android-emu + cakeExtraArgs: --avd-target="`"system-images;android-22;google_apis;x86`"" + preBuildSteps: + - bash: sh -c "echo \"y\" | $ANDROID_HOME/tools/bin/sdkmanager \"system-images;android-22;google_apis;x86\"" + displayName: Install the Android emulators + - template: .ci/build.yml@components parameters: name: devicetests_android_api_23 runChecks: false + continueOnError: true displayName: Android API 23 publishOutputSuffix: '-android23' windowsImage: '' From 9b1efd92fc23ed0046a67b5e4275a887af71dd56 Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Sat, 12 Dec 2020 04:48:18 +0200 Subject: [PATCH 03/56] [iOS] Request the file data from file providers (#1582) Fixes #1549 --- .../Samples/ViewModel/FilePickerViewModel.cs | 23 ++- .../FilePicker/FilePicker.ios.cs | 55 +++--- .../FileSystem/FileSystem.ios.cs | 159 +++++++++++++++++- .../MediaPicker/MediaPicker.ios.cs | 36 ++-- 4 files changed, 204 insertions(+), 69 deletions(-) diff --git a/Samples/Samples/ViewModel/FilePickerViewModel.cs b/Samples/Samples/ViewModel/FilePickerViewModel.cs index b94fb1352..eb8d6fcd1 100644 --- a/Samples/Samples/ViewModel/FilePickerViewModel.cs +++ b/Samples/Samples/ViewModel/FilePickerViewModel.cs @@ -136,12 +136,15 @@ async Task PickAndShow(PickOptions options) if (result != null) { - Text = $"File Name: {result.FileName}"; + var size = await GetStreamSizeAsync(result); - if (result.FileName.EndsWith("jpg", StringComparison.OrdinalIgnoreCase) || - result.FileName.EndsWith("png", StringComparison.OrdinalIgnoreCase)) + Text = $"File Name: {result.FileName} ({size:0.00} KB)"; + + var ext = Path.GetExtension(result.FileName).ToLowerInvariant(); + if (ext == ".jpg" || ext == ".jpeg" || ext == ".png" || ext == ".gif") { var stream = await result.OpenReadAsync(); + Image = ImageSource.FromStream(() => stream); IsImageVisible = true; } @@ -165,6 +168,19 @@ async Task PickAndShow(PickOptions options) } } + async Task GetStreamSizeAsync(FileResult result) + { + try + { + using var stream = await result.OpenReadAsync(); + return stream.Length / 1024.0; + } + catch + { + return 0.0; + } + } + async void DoPickMultipleFiles() { try @@ -193,6 +209,7 @@ async void DoPickMultipleFiles() else { Text = $"Pick cancelled."; + IsImageVisible = false; } } catch (Exception ex) diff --git a/Xamarin.Essentials/FilePicker/FilePicker.ios.cs b/Xamarin.Essentials/FilePicker/FilePicker.ios.cs index 2a43df790..284829ddc 100644 --- a/Xamarin.Essentials/FilePicker/FilePicker.ios.cs +++ b/Xamarin.Essentials/FilePicker/FilePicker.ios.cs @@ -11,7 +11,7 @@ namespace Xamarin.Essentials { public static partial class FilePicker { - static Task> PlatformPickAsync(PickOptions options, bool allowMultiple = false) + static async Task> PlatformPickAsync(PickOptions options, bool allowMultiple = false) { var allowedUtis = options?.FileTypes?.Value?.ToArray() ?? new string[] { @@ -22,45 +22,21 @@ static Task> PlatformPickAsync(PickOptions options, bool var tcs = new TaskCompletionSource>(); - // Note: Importing (UIDocumentPickerMode.Import) makes a local copy of the document, - // while opening (UIDocumentPickerMode.Open) opens the document directly. We do the - // latter, so the user accesses the original file. - var documentPicker = new UIDocumentPickerViewController(allowedUtis, UIDocumentPickerMode.Open); + // Use Open instead of Import so that we can attempt to use the original file. + // If the file is from an external provider, then it will be downloaded. + using var documentPicker = new UIDocumentPickerViewController(allowedUtis, UIDocumentPickerMode.Open); if (Platform.HasOSVersion(11, 0)) documentPicker.AllowsMultipleSelection = allowMultiple; documentPicker.Delegate = new PickerDelegate { - PickHandler = urls => - { - try - { - tcs.TrySetResult(GetFileResults(urls)); - } - catch (Exception ex) - { - // pass exception to task so that it doesn't get lost in the UI main loop - tcs.SetException(ex); - } - } + PickHandler = urls => GetFileResults(urls, tcs) }; if (documentPicker.PresentationController != null) { documentPicker.PresentationController.Delegate = new PickerPresentationControllerDelegate { - PickHandler = urls => - { - try - { - // there was a cancellation - tcs.TrySetResult(GetFileResults(urls)); - } - catch (Exception ex) - { - // pass exception to task so that it doesn't get lost in the UI main loop - tcs.SetException(ex); - } - } + PickHandler = urls => GetFileResults(urls, tcs) }; } @@ -68,13 +44,22 @@ static Task> PlatformPickAsync(PickOptions options, bool parentController.PresentViewController(documentPicker, true, null); - return tcs.Task; + return await tcs.Task; } - static IEnumerable GetFileResults(NSUrl[] urls) => - urls?.Length > 0 - ? urls.Select(url => new UIDocumentFileResult(url)) - : Enumerable.Empty(); + static async void GetFileResults(NSUrl[] urls, TaskCompletionSource> tcs) + { + try + { + var results = await FileSystem.EnsurePhysicalFileResultsAsync(urls); + + tcs.TrySetResult(results); + } + catch (Exception ex) + { + tcs.TrySetException(ex); + } + } class PickerDelegate : UIDocumentPickerDelegate { diff --git a/Xamarin.Essentials/FileSystem/FileSystem.ios.cs b/Xamarin.Essentials/FileSystem/FileSystem.ios.cs index cd53f0d8b..873b88ead 100644 --- a/Xamarin.Essentials/FileSystem/FileSystem.ios.cs +++ b/Xamarin.Essentials/FileSystem/FileSystem.ios.cs @@ -1,5 +1,7 @@ using System; +using System.Collections.Generic; using System.IO; +using System.Linq; using System.Threading.Tasks; using Foundation; using Photos; @@ -7,29 +9,168 @@ namespace Xamarin.Essentials { - class UIDocumentFileResult : FileResult + public partial class FileSystem { - readonly Stream fileStream; + internal static async Task EnsurePhysicalFileResultsAsync(params NSUrl[] urls) + { + if (urls == null || urls.Length == 0) + return Array.Empty(); - internal UIDocumentFileResult(NSUrl url) + var opts = NSFileCoordinatorReadingOptions.WithoutChanges; + var intents = urls.Select(x => NSFileAccessIntent.CreateReadingIntent(x, opts)).ToArray(); + + using var coordinator = new NSFileCoordinator(); + + var tcs = new TaskCompletionSource(); + + coordinator.CoordinateAccess(intents, new NSOperationQueue(), error => + { + if (error != null) + { + tcs.TrySetException(new NSErrorException(error)); + return; + } + + var bookmarks = new List(); + + foreach (var intent in intents) + { + var url = intent.Url; + var result = new BookmarkDataFileResult(url); + bookmarks.Add(result); + } + + tcs.TrySetResult(bookmarks.ToArray()); + }); + + return await tcs.Task; + } + } + + class BookmarkDataFileResult : FileResult + { + NSData bookmark; + + internal BookmarkDataFileResult(NSUrl url) : base() { - url.StartAccessingSecurityScopedResource(); + try + { + url.StartAccessingSecurityScopedResource(); + + var newBookmark = url.CreateBookmarkData(0, Array.Empty(), null, out var bookmarkError); + if (bookmarkError != null) + throw new NSErrorException(bookmarkError); + + UpdateBookmark(url, newBookmark); + } + finally + { + url.StopAccessingSecurityScopedResource(); + } + } + + void UpdateBookmark(NSUrl url, NSData newBookmark) + { + bookmark = newBookmark; var doc = new UIDocument(url); FullPath = doc.FileUrl?.Path; FileName = doc.LocalizedName ?? Path.GetFileName(FullPath); + } + + internal override Task PlatformOpenReadAsync() + { + var url = NSUrl.FromBookmarkData(bookmark, 0, null, out var isStale, out var error); - // immediately open a file stream, in case iOS cleans up the picked file - fileStream = File.OpenRead(FullPath); + if (error != null) + throw new NSErrorException(error); + + url.StartAccessingSecurityScopedResource(); - url.StopAccessingSecurityScopedResource(); + if (isStale) + { + var newBookmark = url.CreateBookmarkData(NSUrlBookmarkCreationOptions.SuitableForBookmarkFile, Array.Empty(), null, out error); + if (error != null) + throw new NSErrorException(error); + + UpdateBookmark(url, newBookmark); + } + + var fileStream = File.OpenRead(FullPath); + Stream stream = new SecurityScopedStream(fileStream, url); + return Task.FromResult(stream); + } + + class SecurityScopedStream : Stream + { + FileStream stream; + NSUrl url; + + internal SecurityScopedStream(FileStream stream, NSUrl url) + { + this.stream = stream; + this.url = url; + } + + public override bool CanRead => stream.CanRead; + + public override bool CanSeek => stream.CanSeek; + + public override bool CanWrite => stream.CanWrite; + + public override long Length => stream.Length; + + public override long Position + { + get => stream.Position; + set => stream.Position = value; + } + + public override void Flush() => + stream.Flush(); + + public override int Read(byte[] buffer, int offset, int count) => + stream.Read(buffer, offset, count); + + public override long Seek(long offset, SeekOrigin origin) => + stream.Seek(offset, origin); + + public override void SetLength(long value) => + stream.SetLength(value); + + public override void Write(byte[] buffer, int offset, int count) => + stream.Write(buffer, offset, count); + + protected override void Dispose(bool disposing) + { + base.Dispose(disposing); + + if (disposing) + { + stream?.Dispose(); + stream = null; + + url?.StopAccessingSecurityScopedResource(); + url = null; + } + } + } + } + + class UIDocumentFileResult : FileResult + { + internal UIDocumentFileResult(NSUrl url) + : base() + { + var doc = new UIDocument(url); + FullPath = doc.FileUrl?.Path; + FileName = doc.LocalizedName ?? Path.GetFileName(FullPath); } internal override Task PlatformOpenReadAsync() { - // make sure we are at he beginning - fileStream.Seek(0, SeekOrigin.Begin); + Stream fileStream = File.OpenRead(FullPath); return Task.FromResult(fileStream); } diff --git a/Xamarin.Essentials/MediaPicker/MediaPicker.ios.cs b/Xamarin.Essentials/MediaPicker/MediaPicker.ios.cs index 58b1988b4..c67d37fd7 100644 --- a/Xamarin.Essentials/MediaPicker/MediaPicker.ios.cs +++ b/Xamarin.Essentials/MediaPicker/MediaPicker.ios.cs @@ -65,34 +65,14 @@ static async Task PhotoAsync(MediaPickerOptions options, bool photo, var tcs = new TaskCompletionSource(picker); picker.Delegate = new PhotoPickerDelegate { - CompletedHandler = info => - { - try - { - tcs.TrySetResult(DictionaryToMediaFile(info)); - } - catch (Exception ex) - { - tcs.TrySetException(ex); - } - } + CompletedHandler = info => GetFileResult(info, tcs) }; if (picker.PresentationController != null) { picker.PresentationController.Delegate = new PhotoPickerPresentationControllerDelegate { - CompletedHandler = info => - { - try - { - tcs.TrySetResult(DictionaryToMediaFile(info)); - } - catch (Exception ex) - { - tcs.TrySetException(ex); - } - } + CompletedHandler = info => GetFileResult(info, tcs) }; } @@ -108,6 +88,18 @@ static async Task PhotoAsync(MediaPickerOptions options, bool photo, return result; } + static void GetFileResult(NSDictionary info, TaskCompletionSource tcs) + { + try + { + tcs.TrySetResult(DictionaryToMediaFile(info)); + } + catch (Exception ex) + { + tcs.TrySetException(ex); + } + } + static FileResult DictionaryToMediaFile(NSDictionary info) { if (info == null) From 2fb7c9ee75e244e990677fa4ef85bbfd730a97e7 Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Sat, 12 Dec 2020 05:45:04 +0200 Subject: [PATCH 04/56] Updated Xamarin.AndroidX.Browser to 1.3.0 (#1585) --- Xamarin.Essentials/Browser/Browser.android.cs | 2 ++ Xamarin.Essentials/Xamarin.Essentials.csproj | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Xamarin.Essentials/Browser/Browser.android.cs b/Xamarin.Essentials/Browser/Browser.android.cs index 70e794088..6e3a0bbdd 100644 --- a/Xamarin.Essentials/Browser/Browser.android.cs +++ b/Xamarin.Essentials/Browser/Browser.android.cs @@ -22,7 +22,9 @@ static Task PlatformOpenAsync(Uri uri, BrowserLaunchOptions options) var tabsBuilder = new CustomTabsIntent.Builder(); tabsBuilder.SetShowTitle(true); if (options.PreferredToolbarColor.HasValue) +#pragma warning disable CS0618 // Type or member is obsolete tabsBuilder.SetToolbarColor(options.PreferredToolbarColor.Value.ToInt()); +#pragma warning restore CS0618 // Type or member is obsolete if (options.TitleMode != BrowserTitleMode.Default) tabsBuilder.SetShowTitle(options.TitleMode == BrowserTitleMode.Show); diff --git a/Xamarin.Essentials/Xamarin.Essentials.csproj b/Xamarin.Essentials/Xamarin.Essentials.csproj index 4d7b8c1d1..185960f9e 100644 --- a/Xamarin.Essentials/Xamarin.Essentials.csproj +++ b/Xamarin.Essentials/Xamarin.Essentials.csproj @@ -87,7 +87,7 @@ - + @@ -125,4 +125,4 @@ - \ No newline at end of file + From d901c07d4ad39585985946dc630eefa26fb82ea3 Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Tue, 22 Dec 2020 00:30:52 +0200 Subject: [PATCH 05/56] Update docs (#1597) --- .../xamarin-essentials-android.xml | 10 ++ .../xamarin-essentials-ios.xml | 10 ++ .../xamarin-essentials-macos.xml | 11 ++ .../xamarin-essentials-tvos.xml | 10 ++ .../xamarin-essentials-uwp.xml | 10 ++ .../xamarin-essentials-watchos.xml | 10 ++ .../en/FrameworksIndex/xamarin-essentials.xml | 10 ++ docs/en/Xamarin.Essentials/Accelerometer.xml | 20 +-- .../AccelerometerChangedEventArgs.xml | 8 +- .../Xamarin.Essentials/AccelerometerData.xml | 32 ++--- docs/en/Xamarin.Essentials/ActivityState.xml | 4 +- .../ActivityStateChangedEventArgs.xml | 12 +- docs/en/Xamarin.Essentials/AppInfo.xml | 24 +--- docs/en/Xamarin.Essentials/AppTheme.xml | 4 +- .../AppleSignInAuthenticator+Options.xml | 24 +--- .../AppleSignInAuthenticator.xml | 8 +- docs/en/Xamarin.Essentials/Barometer.xml | 16 +-- .../BarometerChangedEventArgs.xml | 8 +- docs/en/Xamarin.Essentials/BarometerData.xml | 32 ++--- docs/en/Xamarin.Essentials/Battery.xml | 24 +--- .../BatteryInfoChangedEventArgs.xml | 16 +-- .../Xamarin.Essentials/BatteryPowerSource.xml | 4 +- docs/en/Xamarin.Essentials/BatteryState.xml | 4 +- docs/en/Xamarin.Essentials/Browser.xml | 28 +--- .../Xamarin.Essentials/BrowserLaunchFlags.xml | 4 +- .../BrowserLaunchOptions.xml | 20 +-- .../Xamarin.Essentials/BrowserTitleMode.xml | 4 +- docs/en/Xamarin.Essentials/Clipboard.xml | 20 +-- .../en/Xamarin.Essentials/ColorConverters.xml | 20 +-- .../en/Xamarin.Essentials/ColorExtensions.xml | 56 ++------ docs/en/Xamarin.Essentials/Compass.xml | 16 +-- .../CompassChangedEventArgs.xml | 8 +- docs/en/Xamarin.Essentials/CompassData.xml | 32 ++--- .../Xamarin.Essentials/ConnectionProfile.xml | 4 +- docs/en/Xamarin.Essentials/Connectivity.xml | 4 +- .../ConnectivityChangedEventArgs.xml | 24 +--- docs/en/Xamarin.Essentials/Contact.xml | 2 +- docs/en/Xamarin.Essentials/DeviceDisplay.xml | 16 +-- docs/en/Xamarin.Essentials/DeviceIdiom.xml | 16 +-- docs/en/Xamarin.Essentials/DeviceInfo.xml | 36 ++--- docs/en/Xamarin.Essentials/DevicePlatform.xml | 4 +- docs/en/Xamarin.Essentials/DeviceType.xml | 4 +- docs/en/Xamarin.Essentials/DisplayInfo.xml | 44 ++---- .../DisplayInfoChangedEventArgs.xml | 4 +- .../Xamarin.Essentials/DisplayOrientation.xml | 4 +- .../en/Xamarin.Essentials/DisplayRotation.xml | 4 +- docs/en/Xamarin.Essentials/DistanceUnits.xml | 4 +- docs/en/Xamarin.Essentials/Email.xml | 28 +--- .../en/Xamarin.Essentials/EmailAttachment.xml | 16 +-- .../en/Xamarin.Essentials/EmailBodyFormat.xml | 4 +- docs/en/Xamarin.Essentials/EmailMessage.xml | 68 +++------ .../Xamarin.Essentials/EnergySaverStatus.xml | 4 +- .../ExperimentalFeatures.xml | 20 +-- .../FeatureNotSupportedException.xml | 16 +-- docs/en/Xamarin.Essentials/FileBase.xml | 24 +--- docs/en/Xamarin.Essentials/FileProvider.xml | 12 +- .../FileProviderLocation.xml | 4 +- docs/en/Xamarin.Essentials/FileSystem.xml | 8 +- docs/en/Xamarin.Essentials/Flashlight.xml | 20 +-- docs/en/Xamarin.Essentials/Geocoding.xml | 16 +-- docs/en/Xamarin.Essentials/Geolocation.xml | 16 +-- .../GeolocationAccuracy.xml | 4 +- .../Xamarin.Essentials/GeolocationRequest.xml | 24 +--- docs/en/Xamarin.Essentials/Gyroscope.xml | 16 +-- .../GyroscopeChangedEventArgs.xml | 8 +- docs/en/Xamarin.Essentials/GyroscopeData.xml | 32 ++--- docs/en/Xamarin.Essentials/HapticFeedback.xml | 8 +- .../Xamarin.Essentials/HapticFeedbackType.xml | 4 +- docs/en/Xamarin.Essentials/Launcher.xml | 16 +-- docs/en/Xamarin.Essentials/Locale.xml | 28 +--- docs/en/Xamarin.Essentials/Location.xml | 68 +++------ .../Xamarin.Essentials/LocationExtensions.xml | 20 +-- docs/en/Xamarin.Essentials/Magnetometer.xml | 16 +-- .../MagnetometerChangedEventArgs.xml | 8 +- .../Xamarin.Essentials/MagnetometerData.xml | 32 ++--- docs/en/Xamarin.Essentials/MainThread.xml | 8 +- docs/en/Xamarin.Essentials/Map.xml | 28 +--- .../Xamarin.Essentials/MapLaunchOptions.xml | 8 +- docs/en/Xamarin.Essentials/NetworkAccess.xml | 4 +- ...mplementedInReferenceAssemblyException.xml | 8 +- .../en/Xamarin.Essentials/OpenFileRequest.xml | 32 ++--- .../Xamarin.Essentials/OrientationSensor.xml | 20 +-- .../OrientationSensorChangedEventArgs.xml | 8 +- .../OrientationSensorData.xml | 28 +--- .../PermissionException.xml | 8 +- .../Xamarin.Essentials/PermissionStatus.xml | 4 +- .../Permissions+BasePermission.xml | 1 - .../Permissions+Battery.xml | 4 +- .../Permissions+NetworkState.xml | 1 - docs/en/Xamarin.Essentials/Permissions.xml | 25 ++-- docs/en/Xamarin.Essentials/PhoneDialer.xml | 4 +- docs/en/Xamarin.Essentials/Placemark.xml | 60 +++----- .../PlacemarkExtensions.xml | 4 +- docs/en/Xamarin.Essentials/Platform.xml | 36 ++--- .../en/Xamarin.Essentials/PointExtensions.xml | 28 +--- docs/en/Xamarin.Essentials/Preferences.xml | 136 +++++------------- docs/en/Xamarin.Essentials/ReadOnlyFile.xml | 16 +-- .../RectangleExtensions.xml | 28 +--- docs/en/Xamarin.Essentials/Screenshot.xml | 14 +- .../Xamarin.Essentials/ScreenshotFormat.xml | 8 +- docs/en/Xamarin.Essentials/SecureStorage.xml | 28 +--- docs/en/Xamarin.Essentials/SensorSpeed.xml | 4 +- docs/en/Xamarin.Essentials/Share.xml | 24 +--- docs/en/Xamarin.Essentials/ShareFile.xml | 20 +-- .../Xamarin.Essentials/ShareFileRequest.xml | 32 ++--- .../ShareMultipleFilesRequest.xml | 76 +++++----- .../Xamarin.Essentials/ShareRequestBase.xml | 24 +--- .../Xamarin.Essentials/ShareTextRequest.xml | 24 +--- docs/en/Xamarin.Essentials/SizeExtensions.xml | 28 +--- docs/en/Xamarin.Essentials/Sms.xml | 20 +-- docs/en/Xamarin.Essentials/SmsMessage.xml | 32 ++--- docs/en/Xamarin.Essentials/SpeechOptions.xml | 24 +--- docs/en/Xamarin.Essentials/TextToSpeech.xml | 28 +--- .../en/Xamarin.Essentials/VersionTracking.xml | 104 ++++---------- docs/en/Xamarin.Essentials/Vibration.xml | 12 +- .../Xamarin.Essentials/WebAuthenticator.xml | 4 +- .../WebAuthenticatorCallbackActivity.xml | 16 +-- .../WebAuthenticatorResult.xml | 56 ++------ docs/en/index.xml | 6 +- docs/en/ns-Xamarin.Essentials.xml | 4 +- 120 files changed, 666 insertions(+), 1650 deletions(-) diff --git a/docs/en/FrameworksIndex/xamarin-essentials-android.xml b/docs/en/FrameworksIndex/xamarin-essentials-android.xml index 9a1732ed4..746c36beb 100644 --- a/docs/en/FrameworksIndex/xamarin-essentials-android.xml +++ b/docs/en/FrameworksIndex/xamarin-essentials-android.xml @@ -882,6 +882,7 @@ + @@ -897,6 +898,15 @@ + + + + + + + + + diff --git a/docs/en/FrameworksIndex/xamarin-essentials-ios.xml b/docs/en/FrameworksIndex/xamarin-essentials-ios.xml index ec8f9c654..c0584570f 100644 --- a/docs/en/FrameworksIndex/xamarin-essentials-ios.xml +++ b/docs/en/FrameworksIndex/xamarin-essentials-ios.xml @@ -878,6 +878,7 @@ + @@ -893,6 +894,15 @@ + + + + + + + + + diff --git a/docs/en/FrameworksIndex/xamarin-essentials-macos.xml b/docs/en/FrameworksIndex/xamarin-essentials-macos.xml index 77123e41c..eae1ab7d7 100644 --- a/docs/en/FrameworksIndex/xamarin-essentials-macos.xml +++ b/docs/en/FrameworksIndex/xamarin-essentials-macos.xml @@ -494,6 +494,7 @@ + @@ -836,6 +837,7 @@ + @@ -851,6 +853,15 @@ + + + + + + + + + diff --git a/docs/en/FrameworksIndex/xamarin-essentials-tvos.xml b/docs/en/FrameworksIndex/xamarin-essentials-tvos.xml index e749a3153..ef3980cc1 100644 --- a/docs/en/FrameworksIndex/xamarin-essentials-tvos.xml +++ b/docs/en/FrameworksIndex/xamarin-essentials-tvos.xml @@ -843,6 +843,7 @@ + @@ -858,6 +859,15 @@ + + + + + + + + + diff --git a/docs/en/FrameworksIndex/xamarin-essentials-uwp.xml b/docs/en/FrameworksIndex/xamarin-essentials-uwp.xml index 14c4d0b8d..5f35c2432 100644 --- a/docs/en/FrameworksIndex/xamarin-essentials-uwp.xml +++ b/docs/en/FrameworksIndex/xamarin-essentials-uwp.xml @@ -845,6 +845,7 @@ + @@ -860,6 +861,15 @@ + + + + + + + + + diff --git a/docs/en/FrameworksIndex/xamarin-essentials-watchos.xml b/docs/en/FrameworksIndex/xamarin-essentials-watchos.xml index 0927214d5..09956fcb5 100644 --- a/docs/en/FrameworksIndex/xamarin-essentials-watchos.xml +++ b/docs/en/FrameworksIndex/xamarin-essentials-watchos.xml @@ -851,6 +851,7 @@ + @@ -866,6 +867,15 @@ + + + + + + + + + diff --git a/docs/en/FrameworksIndex/xamarin-essentials.xml b/docs/en/FrameworksIndex/xamarin-essentials.xml index 3e0919a04..9c369ce18 100644 --- a/docs/en/FrameworksIndex/xamarin-essentials.xml +++ b/docs/en/FrameworksIndex/xamarin-essentials.xml @@ -815,6 +815,7 @@ + @@ -830,6 +831,15 @@ + + + + + + + + + diff --git a/docs/en/Xamarin.Essentials/Accelerometer.xml b/docs/en/Xamarin.Essentials/Accelerometer.xml index 95e98a05e..f5ce665b3 100644 --- a/docs/en/Xamarin.Essentials/Accelerometer.xml +++ b/docs/en/Xamarin.Essentials/Accelerometer.xml @@ -14,9 +14,7 @@ Accelerometer data of the acceleration of the device in three dimensional space. - - - + @@ -34,9 +32,7 @@ Gets if accelerometer is being monitored. If monitoring. - - - + @@ -53,9 +49,7 @@ Event triggered when reading of sensor changes. - - - + @@ -72,9 +66,7 @@ Event triggered when a shake has been detected on the device. - - - + @@ -115,9 +107,7 @@ Stop monitoring for changes to accelerometer. - - - + diff --git a/docs/en/Xamarin.Essentials/AccelerometerChangedEventArgs.xml b/docs/en/Xamarin.Essentials/AccelerometerChangedEventArgs.xml index 879600d6a..85a35a329 100644 --- a/docs/en/Xamarin.Essentials/AccelerometerChangedEventArgs.xml +++ b/docs/en/Xamarin.Essentials/AccelerometerChangedEventArgs.xml @@ -12,9 +12,7 @@ Event arguments containing the current reading. - - - + @@ -50,9 +48,7 @@ The current values of accelerometer. The reading. - - - + diff --git a/docs/en/Xamarin.Essentials/AccelerometerData.xml b/docs/en/Xamarin.Essentials/AccelerometerData.xml index c64fefe65..18a79394a 100644 --- a/docs/en/Xamarin.Essentials/AccelerometerData.xml +++ b/docs/en/Xamarin.Essentials/AccelerometerData.xml @@ -21,9 +21,7 @@ Data representing the devies' three accelerometers. - - - + @@ -84,12 +82,8 @@ Gets the acceleration vector in G's (gravitational force). - - - - - - + + @@ -111,9 +105,7 @@ Object to compare If equal to another object If equal - - - + @@ -138,9 +130,7 @@ Other AccelerometerData to compare with. Compares the underlying Vector3 instances. True if they are equal, otherwise false. - - - + @@ -159,9 +149,7 @@ Get the hash code for object. The hash code - - - + @@ -185,9 +173,7 @@ Right to compare Equality operator for equals If equal - - - + @@ -211,9 +197,7 @@ Right to check Inequality check If not equal - - - + diff --git a/docs/en/Xamarin.Essentials/ActivityState.xml b/docs/en/Xamarin.Essentials/ActivityState.xml index fecc85485..a46d8e729 100644 --- a/docs/en/Xamarin.Essentials/ActivityState.xml +++ b/docs/en/Xamarin.Essentials/ActivityState.xml @@ -11,9 +11,7 @@ A state of an Android Activity. - - - + diff --git a/docs/en/Xamarin.Essentials/ActivityStateChangedEventArgs.xml b/docs/en/Xamarin.Essentials/ActivityStateChangedEventArgs.xml index ffbe2906c..e1a36ae2d 100644 --- a/docs/en/Xamarin.Essentials/ActivityStateChangedEventArgs.xml +++ b/docs/en/Xamarin.Essentials/ActivityStateChangedEventArgs.xml @@ -12,9 +12,7 @@ Event argments when an Android Activity's state changes. - - - + @@ -32,9 +30,7 @@ Gets the Activity of which the state changed. The Activity for the event. - - - + @@ -52,9 +48,7 @@ The state of the Activity. The state of the Activity for the event. - - - + diff --git a/docs/en/Xamarin.Essentials/AppInfo.xml b/docs/en/Xamarin.Essentials/AppInfo.xml index c3a7451f8..2c3c073d1 100644 --- a/docs/en/Xamarin.Essentials/AppInfo.xml +++ b/docs/en/Xamarin.Essentials/AppInfo.xml @@ -12,9 +12,7 @@ Represents information about the application. - - - + @@ -32,9 +30,7 @@ Gets the application build number. The application build number. - - - + @@ -52,9 +48,7 @@ Gets the application name. The application name. - - - + @@ -108,9 +102,7 @@ Open the settings menu or page for the application. - - - + @@ -128,9 +120,7 @@ Gets the application version. The application version. - - - + @@ -148,9 +138,7 @@ Gets the application version. The application version. - - - + diff --git a/docs/en/Xamarin.Essentials/AppTheme.xml b/docs/en/Xamarin.Essentials/AppTheme.xml index f0920b9a9..462a61303 100644 --- a/docs/en/Xamarin.Essentials/AppTheme.xml +++ b/docs/en/Xamarin.Essentials/AppTheme.xml @@ -11,9 +11,7 @@ Application Theme Type - - - + diff --git a/docs/en/Xamarin.Essentials/AppleSignInAuthenticator+Options.xml b/docs/en/Xamarin.Essentials/AppleSignInAuthenticator+Options.xml index 5559584ad..30791ffe7 100644 --- a/docs/en/Xamarin.Essentials/AppleSignInAuthenticator+Options.xml +++ b/docs/en/Xamarin.Essentials/AppleSignInAuthenticator+Options.xml @@ -12,9 +12,7 @@ Options for Native Apple Sign In - - - + @@ -28,9 +26,7 @@ - - - + To be added. @@ -48,12 +44,8 @@ Include email scope. - - - - - - + + @@ -70,12 +62,8 @@ Include full name scope. - - - - - - + + diff --git a/docs/en/Xamarin.Essentials/AppleSignInAuthenticator.xml b/docs/en/Xamarin.Essentials/AppleSignInAuthenticator.xml index 96d015048..d7421a023 100644 --- a/docs/en/Xamarin.Essentials/AppleSignInAuthenticator.xml +++ b/docs/en/Xamarin.Essentials/AppleSignInAuthenticator.xml @@ -33,12 +33,8 @@ Additional Sign In options. Performs a native Apple Sign In authentication request. - - - - - - + + diff --git a/docs/en/Xamarin.Essentials/Barometer.xml b/docs/en/Xamarin.Essentials/Barometer.xml index 3f961fe87..968231480 100644 --- a/docs/en/Xamarin.Essentials/Barometer.xml +++ b/docs/en/Xamarin.Essentials/Barometer.xml @@ -12,9 +12,7 @@ Monitor changes to the atmospheric pressure. - - - + @@ -32,9 +30,7 @@ Gets if barometer is actively being monitored. If barometer is being monitored. - - - + @@ -51,9 +47,7 @@ Event triggered when barometer reading changes. - - - + @@ -92,9 +86,7 @@ Stop monitoring for changes to the barometer. - - - + diff --git a/docs/en/Xamarin.Essentials/BarometerChangedEventArgs.xml b/docs/en/Xamarin.Essentials/BarometerChangedEventArgs.xml index 568f10a11..61407f7ec 100644 --- a/docs/en/Xamarin.Essentials/BarometerChangedEventArgs.xml +++ b/docs/en/Xamarin.Essentials/BarometerChangedEventArgs.xml @@ -12,9 +12,7 @@ The current pressure information from the change event. - - - + @@ -50,9 +48,7 @@ Gets the current barometer pressure data Pressure in hPA - - - + diff --git a/docs/en/Xamarin.Essentials/BarometerData.xml b/docs/en/Xamarin.Essentials/BarometerData.xml index 13b4cef4e..cc4f9c0e6 100644 --- a/docs/en/Xamarin.Essentials/BarometerData.xml +++ b/docs/en/Xamarin.Essentials/BarometerData.xml @@ -23,9 +23,7 @@ Contains the pressure measured by the user's device. - - - + @@ -65,9 +63,7 @@ Object to compare If equal to another object If equal - - - + @@ -92,9 +88,7 @@ Other object to compare If equal to another object If equal - - - + @@ -113,9 +107,7 @@ Get has code for object. The hash code. - - - + @@ -139,9 +131,7 @@ Right to compare If equal to another object If equal - - - + @@ -165,9 +155,7 @@ Right to comapre If not equal to another object If not equal - - - + @@ -184,9 +172,7 @@ Gets the current pressure in hectopascals. - - - + To be added. @@ -205,9 +191,7 @@ Outputs the data as a string. - - - + To be added. diff --git a/docs/en/Xamarin.Essentials/Battery.xml b/docs/en/Xamarin.Essentials/Battery.xml index 39a64a4b5..e7940a20e 100644 --- a/docs/en/Xamarin.Essentials/Battery.xml +++ b/docs/en/Xamarin.Essentials/Battery.xml @@ -34,9 +34,7 @@ Event trigger when battery properties have changed. - - - + @@ -56,9 +54,7 @@ Level of charge. Returns -1 if no battery exists. - - - + @@ -76,9 +72,7 @@ Gets the current energy saver status of the device. The current status of energy saver mode. - - - + @@ -95,9 +89,7 @@ Event that is triggered when energy saver status changes. - - - + @@ -117,9 +109,7 @@ Power source, or uknown. - - - + @@ -137,9 +127,7 @@ Gets the charging state of the device if it can be determined. Battery state, or unknown. - - - + diff --git a/docs/en/Xamarin.Essentials/BatteryInfoChangedEventArgs.xml b/docs/en/Xamarin.Essentials/BatteryInfoChangedEventArgs.xml index f1029641b..7f6429810 100644 --- a/docs/en/Xamarin.Essentials/BatteryInfoChangedEventArgs.xml +++ b/docs/en/Xamarin.Essentials/BatteryInfoChangedEventArgs.xml @@ -52,9 +52,7 @@ Gets the current charge level of the device from 0.0 to 1.0. Level of charge. - - - + @@ -72,9 +70,7 @@ Gets the current power source for the device. Power source, or unknown - - - + @@ -92,9 +88,7 @@ Gets the charging state of the device if it can be determined. Battery state, or unknown. - - - + @@ -112,9 +106,7 @@ Outputs the data as a string. - - - + To be added. diff --git a/docs/en/Xamarin.Essentials/BatteryPowerSource.xml b/docs/en/Xamarin.Essentials/BatteryPowerSource.xml index cdfd85696..baf00644d 100644 --- a/docs/en/Xamarin.Essentials/BatteryPowerSource.xml +++ b/docs/en/Xamarin.Essentials/BatteryPowerSource.xml @@ -11,9 +11,7 @@ How the device and battery are currently being powered or charged. - - - + diff --git a/docs/en/Xamarin.Essentials/BatteryState.xml b/docs/en/Xamarin.Essentials/BatteryState.xml index e4a568d49..d2b619fd9 100644 --- a/docs/en/Xamarin.Essentials/BatteryState.xml +++ b/docs/en/Xamarin.Essentials/BatteryState.xml @@ -11,9 +11,7 @@ The current state of the battery and if it is being charged or full. - - - + diff --git a/docs/en/Xamarin.Essentials/Browser.xml b/docs/en/Xamarin.Essentials/Browser.xml index 15cb900f9..cf432117d 100644 --- a/docs/en/Xamarin.Essentials/Browser.xml +++ b/docs/en/Xamarin.Essentials/Browser.xml @@ -12,9 +12,7 @@ Provides a way to display a web page inside an app. - - - + @@ -36,9 +34,7 @@ Uri to launch. Open the browser to specified uri. Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. - - - + @@ -60,9 +56,7 @@ Uri to launch. Open the browser to specified uri. Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. - - - + @@ -86,9 +80,7 @@ How to launch the browser. Open the browser to specified uri. Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. - - - + @@ -112,9 +104,7 @@ Launch options for the browser. Open the browser to specified uri. Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. - - - + @@ -138,9 +128,7 @@ How to launch the browser. Open the browser to specified uri. Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. - - - + @@ -164,9 +152,7 @@ Launch options for the browser. Open the browser to specified uri. Completed task when browser is launched, but not necessarily closed. Result indicates if launching was successful or not. - - - + diff --git a/docs/en/Xamarin.Essentials/BrowserLaunchFlags.xml b/docs/en/Xamarin.Essentials/BrowserLaunchFlags.xml index 416f6a3bf..df0ea50be 100644 --- a/docs/en/Xamarin.Essentials/BrowserLaunchFlags.xml +++ b/docs/en/Xamarin.Essentials/BrowserLaunchFlags.xml @@ -16,9 +16,7 @@ Additional flags that can be set to control how the browser opens. - - - + diff --git a/docs/en/Xamarin.Essentials/BrowserLaunchOptions.xml b/docs/en/Xamarin.Essentials/BrowserLaunchOptions.xml index a0acf8ff6..7feb45592 100644 --- a/docs/en/Xamarin.Essentials/BrowserLaunchOptions.xml +++ b/docs/en/Xamarin.Essentials/BrowserLaunchOptions.xml @@ -27,9 +27,7 @@ Default constructor. - - - + @@ -65,9 +63,7 @@ Launch type of the browser. The launch type. - - - + @@ -85,9 +81,7 @@ Preferred color of the controls on the browser. Gets the color for controls. - - - + @@ -105,9 +99,7 @@ Preferred color of the background toolbar. Gets the toolbar color. - - - + @@ -125,9 +117,7 @@ Preferred mode for the title display. Gets the title display mode. - - - + diff --git a/docs/en/Xamarin.Essentials/BrowserTitleMode.xml b/docs/en/Xamarin.Essentials/BrowserTitleMode.xml index 91aebf798..61245e1b5 100644 --- a/docs/en/Xamarin.Essentials/BrowserTitleMode.xml +++ b/docs/en/Xamarin.Essentials/BrowserTitleMode.xml @@ -11,9 +11,7 @@ Mode for the title. - - - + diff --git a/docs/en/Xamarin.Essentials/Clipboard.xml b/docs/en/Xamarin.Essentials/Clipboard.xml index 03b69d5f3..bcc80dac7 100644 --- a/docs/en/Xamarin.Essentials/Clipboard.xml +++ b/docs/en/Xamarin.Essentials/Clipboard.xml @@ -12,9 +12,7 @@ Provides a way to work with text on the device clipboard. - - - + @@ -31,9 +29,7 @@ Fires when the clipboard content changes. - - - + @@ -52,9 +48,7 @@ Returns any text that is on the clipboard. Returns text that is on the clipboard, or null if there is none. - - - + @@ -71,12 +65,8 @@ Gets a value indicating whether there is any text on the clipboard. - - - - - - + + diff --git a/docs/en/Xamarin.Essentials/ColorConverters.xml b/docs/en/Xamarin.Essentials/ColorConverters.xml index 905164ab2..2ff8f63aa 100644 --- a/docs/en/Xamarin.Essentials/ColorConverters.xml +++ b/docs/en/Xamarin.Essentials/ColorConverters.xml @@ -12,9 +12,7 @@ Contains several helper methods to convert System.Drawing.Color - - - + @@ -36,9 +34,7 @@ A string value similar to the syntax used in HTML, eg "00FF00". Alpha can optionally be specified as the first pair of the characters ("CC00FF00"). Creates a new Color from a Hex string. A color from the Hex string. - - - + @@ -64,9 +60,7 @@ The luminosity of the color from 0-100. Creates a new Color from hue, saturation, and lightness. A new color from the Hsla. - - - + @@ -94,9 +88,7 @@ The alpha of the color from 0-255. Creates a new Color from hue, saturation, luminosity, and alpha. A new color from the Hsla. - - - + @@ -118,9 +110,7 @@ A single value representing argb. Creates a new Color from an UInt. A new color from the Uint - - - + diff --git a/docs/en/Xamarin.Essentials/ColorExtensions.xml b/docs/en/Xamarin.Essentials/ColorExtensions.xml index 2692d8284..16910bc9b 100644 --- a/docs/en/Xamarin.Essentials/ColorExtensions.xml +++ b/docs/en/Xamarin.Essentials/ColorExtensions.xml @@ -12,9 +12,7 @@ Extension methods for System.Drawing.Color - - - + @@ -38,9 +36,7 @@ The delta to add to the current luminosity. Adds luminosity to the existing color The new color. - - - + @@ -68,9 +64,7 @@ The Alpha value in double. Convert HSVa color into System.Drawing.Color. System.Drawing.Color. - - - + @@ -92,9 +86,7 @@ A color to obtain the complement for. Returns a new color that is on the opposite side of the color wheel from the original. A color that is the complement of the value passed in. - - - + @@ -118,9 +110,7 @@ The percentage from 0-1f Multiplies the current alpha by a percentage (0-1f) The new color. - - - + @@ -147,9 +137,7 @@ The current color to manipulate. Convert a System.Drawing.Color struct into HSV Color. A tuple of doubles with the values of Hue, Saturation and Value, respectively. - - - + @@ -193,9 +181,7 @@ The color to use as a base. Converts the color to the system specific color. The system color. - - - + @@ -239,9 +225,7 @@ The color to use as a base. Converts the color to the system specific color. The system color. - - - + @@ -263,9 +247,7 @@ The color to use as a base. Converts the color to the system specific color. The system color. - - - + @@ -287,9 +269,7 @@ The color to use as a base. Converts the color to a UInt representation. The UInt representation. - - - + @@ -313,9 +293,7 @@ The alpha to set 0-255. Creates a new color based on this color, but with a new alpha (0-255). The new color. - - - + @@ -339,9 +317,7 @@ The hue to set 0-360. Creates a new color based on this color, but with a new hue (0-360). The new color. - - - + @@ -365,9 +341,7 @@ The luminosity to set 0-100. Creates a new color based on this color, but with a new luminosity (0-100). The new color. - - - + @@ -391,9 +365,7 @@ The saturation to set 0-100. Creates a new color based on this color, but with a new saturation (0-100). The new color. - - - + diff --git a/docs/en/Xamarin.Essentials/Compass.xml b/docs/en/Xamarin.Essentials/Compass.xml index 34d84a3e5..57e78cad4 100644 --- a/docs/en/Xamarin.Essentials/Compass.xml +++ b/docs/en/Xamarin.Essentials/Compass.xml @@ -12,9 +12,7 @@ Monitor changes to the orientation of the user's device. - - - + @@ -32,9 +30,7 @@ Gets if compass is actively being monitored. If compass is being monitored. - - - + @@ -51,9 +47,7 @@ Event triggered when compass reading changes. - - - + @@ -133,9 +127,7 @@ Stop monitoring for changes to the compass. - - - + diff --git a/docs/en/Xamarin.Essentials/CompassChangedEventArgs.xml b/docs/en/Xamarin.Essentials/CompassChangedEventArgs.xml index 19253b533..789fae8e1 100644 --- a/docs/en/Xamarin.Essentials/CompassChangedEventArgs.xml +++ b/docs/en/Xamarin.Essentials/CompassChangedEventArgs.xml @@ -12,9 +12,7 @@ Event arguments when compass reading changes. - - - + @@ -50,9 +48,7 @@ Gets the current reading. The reading. - - - + diff --git a/docs/en/Xamarin.Essentials/CompassData.xml b/docs/en/Xamarin.Essentials/CompassData.xml index dea519d62..3516b9866 100644 --- a/docs/en/Xamarin.Essentials/CompassData.xml +++ b/docs/en/Xamarin.Essentials/CompassData.xml @@ -23,9 +23,7 @@ Contains the orientation of the user's device. - - - + @@ -65,9 +63,7 @@ Object to compare If equal to another object If equal - - - + @@ -92,9 +88,7 @@ Other AccelerometerData to compare with. Compares the underlying doubles. True if they are equal, otherwise false. - - - + @@ -113,9 +107,7 @@ Get the hash code for object. The hash code - - - + @@ -133,9 +125,7 @@ The heading (measured in degrees) relative to magnetic north. The magnetic north heading. - - - + @@ -159,9 +149,7 @@ Right to compare Equality operator for equals If equal - - - + @@ -185,9 +173,7 @@ Right to check Inequality check If not equal - - - + @@ -205,9 +191,7 @@ Current string representation of the data. - - - + To be added. diff --git a/docs/en/Xamarin.Essentials/ConnectionProfile.xml b/docs/en/Xamarin.Essentials/ConnectionProfile.xml index 4e72eaab2..f9ca29a6a 100644 --- a/docs/en/Xamarin.Essentials/ConnectionProfile.xml +++ b/docs/en/Xamarin.Essentials/ConnectionProfile.xml @@ -11,9 +11,7 @@ Describes the type of connection the device is using. - - - + diff --git a/docs/en/Xamarin.Essentials/Connectivity.xml b/docs/en/Xamarin.Essentials/Connectivity.xml index 99513c93e..6e267c0fe 100644 --- a/docs/en/Xamarin.Essentials/Connectivity.xml +++ b/docs/en/Xamarin.Essentials/Connectivity.xml @@ -12,9 +12,7 @@ Connectivity and networking helpers. - - - + diff --git a/docs/en/Xamarin.Essentials/ConnectivityChangedEventArgs.xml b/docs/en/Xamarin.Essentials/ConnectivityChangedEventArgs.xml index b9361376c..c2cd5aee0 100644 --- a/docs/en/Xamarin.Essentials/ConnectivityChangedEventArgs.xml +++ b/docs/en/Xamarin.Essentials/ConnectivityChangedEventArgs.xml @@ -12,9 +12,7 @@ The current connectivity information from the change event. - - - + @@ -34,9 +32,7 @@ The current access of the network The connection profiles of the events changing Public constructor - - - + @@ -54,9 +50,7 @@ Gets the active connectivity types for the device. List of all connection profiles. - - - + @@ -74,9 +68,7 @@ Gets the current state of network access. Does not guarantee full access to the internet. The current network access state. - - - + @@ -94,12 +86,8 @@ The string representation of the event. - - - - - - + + diff --git a/docs/en/Xamarin.Essentials/Contact.xml b/docs/en/Xamarin.Essentials/Contact.xml index be33b3f43..03e60f7f0 100644 --- a/docs/en/Xamarin.Essentials/Contact.xml +++ b/docs/en/Xamarin.Essentials/Contact.xml @@ -65,7 +65,7 @@ - + Property diff --git a/docs/en/Xamarin.Essentials/DeviceDisplay.xml b/docs/en/Xamarin.Essentials/DeviceDisplay.xml index 815c90160..da78501ef 100644 --- a/docs/en/Xamarin.Essentials/DeviceDisplay.xml +++ b/docs/en/Xamarin.Essentials/DeviceDisplay.xml @@ -12,9 +12,7 @@ Represents information about the device screen. - - - + @@ -32,9 +30,7 @@ Gets or sets if the screen shold be kept on. If the screen keep on is set. - - - + @@ -52,9 +48,7 @@ Gets the main screens display info. The main screen display info. - - - + @@ -71,9 +65,7 @@ Event that is triggered when the main display info changes. - - - + diff --git a/docs/en/Xamarin.Essentials/DeviceIdiom.xml b/docs/en/Xamarin.Essentials/DeviceIdiom.xml index 14c4bc932..0b5de818b 100644 --- a/docs/en/Xamarin.Essentials/DeviceIdiom.xml +++ b/docs/en/Xamarin.Essentials/DeviceIdiom.xml @@ -21,9 +21,7 @@ The idiom (form factor) of the device. - - - + @@ -44,12 +42,8 @@ The idiom name of the device Creates a new device idiom. - - - - - - + + @@ -66,9 +60,7 @@ Gets the desktop idiom. - - - + To be added. diff --git a/docs/en/Xamarin.Essentials/DeviceInfo.xml b/docs/en/Xamarin.Essentials/DeviceInfo.xml index 2dfb71ab7..dd0ef94ba 100644 --- a/docs/en/Xamarin.Essentials/DeviceInfo.xml +++ b/docs/en/Xamarin.Essentials/DeviceInfo.xml @@ -12,9 +12,7 @@ Represents information about the device. - - - + @@ -32,9 +30,7 @@ Gets the type of device the application is running on. The device type. - - - + @@ -52,9 +48,7 @@ Gets the idiom of the device. The idiom. - - - + @@ -72,9 +66,7 @@ Gets the manufacturer of the device. Device manufacturer. - - - + @@ -92,9 +84,7 @@ Gets the model of the device. Device model. - - - + @@ -112,9 +102,7 @@ Gets the name of the device. The name of the device (often specified by the user). - - - + @@ -132,9 +120,7 @@ Gets the platform or operating system of the device. The platform of device. - - - + @@ -152,9 +138,7 @@ Gets the version of the operating system. The device operating system. - - - + @@ -172,9 +156,7 @@ Gets the version of the operating system. The version of the operating system. - - - + diff --git a/docs/en/Xamarin.Essentials/DevicePlatform.xml b/docs/en/Xamarin.Essentials/DevicePlatform.xml index 1e0780ae9..df8215fb8 100644 --- a/docs/en/Xamarin.Essentials/DevicePlatform.xml +++ b/docs/en/Xamarin.Essentials/DevicePlatform.xml @@ -21,9 +21,7 @@ The device platform that the application is running on. - - - + diff --git a/docs/en/Xamarin.Essentials/DeviceType.xml b/docs/en/Xamarin.Essentials/DeviceType.xml index 1786401c2..375f54063 100644 --- a/docs/en/Xamarin.Essentials/DeviceType.xml +++ b/docs/en/Xamarin.Essentials/DeviceType.xml @@ -11,9 +11,7 @@ Various types of devices. - - - + diff --git a/docs/en/Xamarin.Essentials/DisplayInfo.xml b/docs/en/Xamarin.Essentials/DisplayInfo.xml index 6b641b238..f8f76aae3 100644 --- a/docs/en/Xamarin.Essentials/DisplayInfo.xml +++ b/docs/en/Xamarin.Essentials/DisplayInfo.xml @@ -21,9 +21,7 @@ Represents information about the screen. - - - + @@ -93,9 +91,7 @@ Object to compare. If equal to another object. If equal. - - - + @@ -120,9 +116,7 @@ The other display info to compare. If equal to another object. If equal. - - - + @@ -141,9 +135,7 @@ Gets the hash code for object. The hash code. - - - + @@ -161,9 +153,7 @@ Gets the height of the screen for the current orientation. The height in pixels. - - - + @@ -187,9 +177,7 @@ Right to compare. If equal to another object. If equal - - - + @@ -213,9 +201,7 @@ Right to compare If not equal to another object. If not equal - - - + @@ -233,9 +219,7 @@ Gets the orientation of the device. The orientation. - - - + @@ -253,9 +237,7 @@ Gets the rotation from the designated orientation. The rotation - - - + @@ -274,9 +256,7 @@ String representation of information. String information about display info. - - - + @@ -294,9 +274,7 @@ Gets the width of the scrreen for the current orientation. The width in pixels. - - - + diff --git a/docs/en/Xamarin.Essentials/DisplayInfoChangedEventArgs.xml b/docs/en/Xamarin.Essentials/DisplayInfoChangedEventArgs.xml index eccbf4271..eaebc4104 100644 --- a/docs/en/Xamarin.Essentials/DisplayInfoChangedEventArgs.xml +++ b/docs/en/Xamarin.Essentials/DisplayInfoChangedEventArgs.xml @@ -12,9 +12,7 @@ Main display information event arguments. - - - + diff --git a/docs/en/Xamarin.Essentials/DisplayOrientation.xml b/docs/en/Xamarin.Essentials/DisplayOrientation.xml index 8a01604c2..5aebde20f 100644 --- a/docs/en/Xamarin.Essentials/DisplayOrientation.xml +++ b/docs/en/Xamarin.Essentials/DisplayOrientation.xml @@ -11,9 +11,7 @@ Display Orientation - - - + diff --git a/docs/en/Xamarin.Essentials/DisplayRotation.xml b/docs/en/Xamarin.Essentials/DisplayRotation.xml index d20695df2..8a0962669 100644 --- a/docs/en/Xamarin.Essentials/DisplayRotation.xml +++ b/docs/en/Xamarin.Essentials/DisplayRotation.xml @@ -11,9 +11,7 @@ Display rotation. - - - + diff --git a/docs/en/Xamarin.Essentials/DistanceUnits.xml b/docs/en/Xamarin.Essentials/DistanceUnits.xml index 6dd827d45..283646d51 100644 --- a/docs/en/Xamarin.Essentials/DistanceUnits.xml +++ b/docs/en/Xamarin.Essentials/DistanceUnits.xml @@ -11,9 +11,7 @@ Distance Unit for use in conversion. - - - + diff --git a/docs/en/Xamarin.Essentials/Email.xml b/docs/en/Xamarin.Essentials/Email.xml index 2618fbfce..4560116d2 100644 --- a/docs/en/Xamarin.Essentials/Email.xml +++ b/docs/en/Xamarin.Essentials/Email.xml @@ -12,9 +12,7 @@ Provides an easy way to allow the user to send emails. - - - + @@ -32,12 +30,8 @@ Opens the default email client to allow the user to send the message. - - - - - - + + @@ -58,12 +52,8 @@ The email message. Opens the default email client to allow the user to send the message. - - - - - - + + @@ -94,12 +84,8 @@ The email body. The email recipients. Opens the default email client to allow the user to send the message with the provided subject, body and recipients. - - - - - - + + diff --git a/docs/en/Xamarin.Essentials/EmailAttachment.xml b/docs/en/Xamarin.Essentials/EmailAttachment.xml index d18bd7d31..e65183c00 100644 --- a/docs/en/Xamarin.Essentials/EmailAttachment.xml +++ b/docs/en/Xamarin.Essentials/EmailAttachment.xml @@ -12,9 +12,7 @@ Email file attachment. - - - + @@ -32,9 +30,7 @@ Full path and filename to file. Email attachment from filename. - - - + @@ -52,9 +48,7 @@ Existing file. Email attachment from existing file. - - - + @@ -74,9 +68,7 @@ Full path and filename to file. Content type (MIME type) of the file (eg: `image/png`). Explicit content type (MIME type) of file. - - - + diff --git a/docs/en/Xamarin.Essentials/EmailBodyFormat.xml b/docs/en/Xamarin.Essentials/EmailBodyFormat.xml index 7a1347dd0..bf5ef9d29 100644 --- a/docs/en/Xamarin.Essentials/EmailBodyFormat.xml +++ b/docs/en/Xamarin.Essentials/EmailBodyFormat.xml @@ -11,9 +11,7 @@ Represents various types of email body formats. - - - + diff --git a/docs/en/Xamarin.Essentials/EmailMessage.xml b/docs/en/Xamarin.Essentials/EmailMessage.xml index 0537623b3..0dd37d1c3 100644 --- a/docs/en/Xamarin.Essentials/EmailMessage.xml +++ b/docs/en/Xamarin.Essentials/EmailMessage.xml @@ -12,9 +12,7 @@ Represents a single email message. - - - + @@ -29,9 +27,7 @@ Creates a new instance of EmailMessage. - - - + @@ -59,9 +55,7 @@ The email body. The email's recipients. Creates a new instance of EmailMessage with the specified subject, body and recipients. - - - + @@ -78,12 +72,8 @@ Gets or sets a list of file attachments. - - - - - - + + @@ -100,12 +90,8 @@ Gets or sets the email's BCC recipients. - - - - - - + + @@ -122,12 +108,8 @@ Gets or sets the email's body. - - - - - - + + @@ -144,12 +126,8 @@ Gets or sets a value indicating whether the message is in plain text or HTML (not supported on UWP). - - - - - - + + @@ -166,12 +144,8 @@ Gets or sets the email's CC recipients. - - - - - - + + @@ -188,12 +162,8 @@ Gets or sets the email's subject. - - - - - - + + @@ -210,12 +180,8 @@ Gets or sets the email's recipients. - - - - - - + + diff --git a/docs/en/Xamarin.Essentials/EnergySaverStatus.xml b/docs/en/Xamarin.Essentials/EnergySaverStatus.xml index 781f1e7e3..2b358fa7c 100644 --- a/docs/en/Xamarin.Essentials/EnergySaverStatus.xml +++ b/docs/en/Xamarin.Essentials/EnergySaverStatus.xml @@ -11,9 +11,7 @@ Status of energy saver on the device. - - - + diff --git a/docs/en/Xamarin.Essentials/ExperimentalFeatures.xml b/docs/en/Xamarin.Essentials/ExperimentalFeatures.xml index 768d37030..7a3c25494 100644 --- a/docs/en/Xamarin.Essentials/ExperimentalFeatures.xml +++ b/docs/en/Xamarin.Essentials/ExperimentalFeatures.xml @@ -12,9 +12,7 @@ Enables experimental features in Xamarin.Essentials - - - + @@ -42,9 +40,7 @@ Obsolete as of version 1.3.0 and no longer required to use the feature. Experimental feature for email attachments. - - - + @@ -71,9 +67,7 @@ List of features to enable. Enable experimental features for Xamarin.Essentials. - - - + @@ -118,9 +112,7 @@ Obsolete as of version 1.3.0 and no longer required to use the feature. Experimental feature for requesting a file to be opened. - - - + @@ -148,9 +140,7 @@ Obsolete as of version 1.3.0 and no longer required to use the feature. Experimental feature for share a file with other applications. - - - + diff --git a/docs/en/Xamarin.Essentials/FeatureNotSupportedException.xml b/docs/en/Xamarin.Essentials/FeatureNotSupportedException.xml index 63bfe7485..58632c940 100644 --- a/docs/en/Xamarin.Essentials/FeatureNotSupportedException.xml +++ b/docs/en/Xamarin.Essentials/FeatureNotSupportedException.xml @@ -12,9 +12,7 @@ Exception that occurs when an attempt is made to use a feature on a platform that does not support it. - - - + @@ -29,9 +27,7 @@ Creates a new instance of FeatureNotSupportedException. - - - + @@ -49,9 +45,7 @@ The exception message. Creates a new instance of FeatureNotSupportedException with the specified message. - - - + @@ -71,9 +65,7 @@ The exception message. The inner exception. Creates a new instance of FeatureNotSupportedException with the specified message and inner exception. - - - + diff --git a/docs/en/Xamarin.Essentials/FileBase.xml b/docs/en/Xamarin.Essentials/FileBase.xml index 0546c280c..f698aacf5 100644 --- a/docs/en/Xamarin.Essentials/FileBase.xml +++ b/docs/en/Xamarin.Essentials/FileBase.xml @@ -12,9 +12,7 @@ A representation of a file and its content type. - - - + @@ -32,9 +30,7 @@ An existing FileBase instance to use. FileBase from an existing instance. - - - + @@ -51,12 +47,8 @@ Gets or sets the file's content type as a MIME type (eg: `image/png`). - - - - - - + + @@ -91,12 +83,8 @@ Gets the full path and filename. - - - - - - + + diff --git a/docs/en/Xamarin.Essentials/FileProvider.xml b/docs/en/Xamarin.Essentials/FileProvider.xml index 125a2c1e0..daffeb974 100644 --- a/docs/en/Xamarin.Essentials/FileProvider.xml +++ b/docs/en/Xamarin.Essentials/FileProvider.xml @@ -20,9 +20,7 @@ Android FileProvider implementation for creating Content URIs to share files with other applications. - - - + @@ -37,9 +35,7 @@ Default constructor. - - - + @@ -56,9 +52,7 @@ Gets or sets the temporary location for file sharing. - - - + The default is to prefer external and fallback to internal. diff --git a/docs/en/Xamarin.Essentials/FileProviderLocation.xml b/docs/en/Xamarin.Essentials/FileProviderLocation.xml index ce393c65d..b3145319d 100644 --- a/docs/en/Xamarin.Essentials/FileProviderLocation.xml +++ b/docs/en/Xamarin.Essentials/FileProviderLocation.xml @@ -11,9 +11,7 @@ Location to save temporary files to for sharing. - - - + diff --git a/docs/en/Xamarin.Essentials/FileSystem.xml b/docs/en/Xamarin.Essentials/FileSystem.xml index a4eac7e9e..4b7194968 100644 --- a/docs/en/Xamarin.Essentials/FileSystem.xml +++ b/docs/en/Xamarin.Essentials/FileSystem.xml @@ -12,9 +12,7 @@ Provides an easy way to access the locations for device folders. - - - + @@ -72,9 +70,7 @@ the name of the file to load from the app package. Opens a stream to a file contained within the app package. Returns a stream to the file. - - - + diff --git a/docs/en/Xamarin.Essentials/Flashlight.xml b/docs/en/Xamarin.Essentials/Flashlight.xml index 5ac46dbb5..fd623784f 100644 --- a/docs/en/Xamarin.Essentials/Flashlight.xml +++ b/docs/en/Xamarin.Essentials/Flashlight.xml @@ -12,9 +12,7 @@ Turn the Flashlight / Torch / Lamp On and Off. - - - + @@ -32,12 +30,8 @@ Turns the Flashlight Off. - - - - - - + + @@ -55,12 +49,8 @@ Turns the Flashlight On. - - - - - - + + diff --git a/docs/en/Xamarin.Essentials/Geocoding.xml b/docs/en/Xamarin.Essentials/Geocoding.xml index 17eba78f0..4fd2f8d30 100644 --- a/docs/en/Xamarin.Essentials/Geocoding.xml +++ b/docs/en/Xamarin.Essentials/Geocoding.xml @@ -12,9 +12,7 @@ Easily convert between geographic coordinated and place names. - - - + @@ -38,9 +36,7 @@ List of locations that best match the address or null if none found. - - - + @@ -62,9 +58,7 @@ Location to find placemarks for. Retrieve placemarks for a given location. List of placemarks or null if no placemarks are found. - - - + @@ -88,9 +82,7 @@ Longitude of the location. Retrieve location for a given address. List of placemarks or null if no placemarks are found. - - - + diff --git a/docs/en/Xamarin.Essentials/Geolocation.xml b/docs/en/Xamarin.Essentials/Geolocation.xml index ec2ce9451..83ce2c2de 100644 --- a/docs/en/Xamarin.Essentials/Geolocation.xml +++ b/docs/en/Xamarin.Essentials/Geolocation.xml @@ -12,9 +12,7 @@ Provides a way to get the current location of the device. - - - + @@ -52,9 +50,7 @@ Returns the current location of the device. Returns the location. - - - + @@ -76,9 +72,7 @@ The criteria to use when determining the location of the device. Returns the current location of the device using the specified criteria. Returns the location. - - - + @@ -102,9 +96,7 @@ A token for cancelling the operation. Returns the current location of the device using the specified criteria. Returns the location. - - - + diff --git a/docs/en/Xamarin.Essentials/GeolocationAccuracy.xml b/docs/en/Xamarin.Essentials/GeolocationAccuracy.xml index 0ffccf647..8bda73613 100644 --- a/docs/en/Xamarin.Essentials/GeolocationAccuracy.xml +++ b/docs/en/Xamarin.Essentials/GeolocationAccuracy.xml @@ -11,9 +11,7 @@ Represents levels of accuracy when determining location. - - - + diff --git a/docs/en/Xamarin.Essentials/GeolocationRequest.xml b/docs/en/Xamarin.Essentials/GeolocationRequest.xml index a76471705..2b7939fe4 100644 --- a/docs/en/Xamarin.Essentials/GeolocationRequest.xml +++ b/docs/en/Xamarin.Essentials/GeolocationRequest.xml @@ -12,9 +12,7 @@ Represents the criteria for a location request. - - - + @@ -29,9 +27,7 @@ Creates a new instance of GeolocationRequest. - - - + @@ -49,9 +45,7 @@ The desired accuracy. Creates a new instance of GeolocationRequest with the specified accuracy. - - - + @@ -71,9 +65,7 @@ The desired accuracy. The request timeout. Creates a new instance of GeolocationRequest with the specified accuracy and timeout. - - - + @@ -91,9 +83,7 @@ Gets or sets the desired accuracy of the resulting location. The desired accuracy of the location. - - - + @@ -111,9 +101,7 @@ Gets or sets the location request timeout. The location request timeout. - - - + diff --git a/docs/en/Xamarin.Essentials/Gyroscope.xml b/docs/en/Xamarin.Essentials/Gyroscope.xml index ef993abea..12976f891 100644 --- a/docs/en/Xamarin.Essentials/Gyroscope.xml +++ b/docs/en/Xamarin.Essentials/Gyroscope.xml @@ -12,9 +12,7 @@ Gyroscope data of the rotation around the device's three primary axis. - - - + @@ -32,9 +30,7 @@ Gets if gyro is being monitored. If monitoring. - - - + @@ -51,9 +47,7 @@ Event triggered when reading of sensor changes. - - - + @@ -92,9 +86,7 @@ Stop monitoring for changes to gyro. - - - + diff --git a/docs/en/Xamarin.Essentials/GyroscopeChangedEventArgs.xml b/docs/en/Xamarin.Essentials/GyroscopeChangedEventArgs.xml index 8de924ac4..bdd25c872 100644 --- a/docs/en/Xamarin.Essentials/GyroscopeChangedEventArgs.xml +++ b/docs/en/Xamarin.Essentials/GyroscopeChangedEventArgs.xml @@ -12,9 +12,7 @@ Event arguments containing the current reading. - - - + @@ -50,9 +48,7 @@ Gets the reading of the gyro. The reading. - - - + diff --git a/docs/en/Xamarin.Essentials/GyroscopeData.xml b/docs/en/Xamarin.Essentials/GyroscopeData.xml index b8ca7994e..7dd514f33 100644 --- a/docs/en/Xamarin.Essentials/GyroscopeData.xml +++ b/docs/en/Xamarin.Essentials/GyroscopeData.xml @@ -21,9 +21,7 @@ Gyroscope information. - - - + @@ -84,12 +82,8 @@ Gets the angular velocity vector in radians per second. - - - - - - + + @@ -111,9 +105,7 @@ Object to compare If equal to another object If equal - - - + @@ -138,9 +130,7 @@ Other GyroscopeData to compare with. Compares the underlying Vector3 instances. True if they match, otherwise false. - - - + @@ -159,9 +149,7 @@ Get the hash code for object. The hash code - - - + @@ -185,9 +173,7 @@ Right to compare Equality operator for equals If equal - - - + @@ -211,9 +197,7 @@ Right to check Inequality check If not equal - - - + diff --git a/docs/en/Xamarin.Essentials/HapticFeedback.xml b/docs/en/Xamarin.Essentials/HapticFeedback.xml index 4bcd93500..56db0b978 100644 --- a/docs/en/Xamarin.Essentials/HapticFeedback.xml +++ b/docs/en/Xamarin.Essentials/HapticFeedback.xml @@ -12,9 +12,7 @@ Provides methods to control HapticFeedback responses - - - + @@ -35,9 +33,7 @@ The type of a HapticFeedback response that will be called Calls the platform-oriented method to cause a HapticFeedback response of the specified type - - - + diff --git a/docs/en/Xamarin.Essentials/HapticFeedbackType.xml b/docs/en/Xamarin.Essentials/HapticFeedbackType.xml index d14cbb70c..b72c69d29 100644 --- a/docs/en/Xamarin.Essentials/HapticFeedbackType.xml +++ b/docs/en/Xamarin.Essentials/HapticFeedbackType.xml @@ -11,9 +11,7 @@ Enumerates the possible types of HapticFeedback response - - - + diff --git a/docs/en/Xamarin.Essentials/Launcher.xml b/docs/en/Xamarin.Essentials/Launcher.xml index 5d65fe9aa..e41676ade 100644 --- a/docs/en/Xamarin.Essentials/Launcher.xml +++ b/docs/en/Xamarin.Essentials/Launcher.xml @@ -77,9 +77,7 @@ string uri scheme Launches the app specified by the uri scheme - - - + May throw System.UriFormatException if uri is malformed. Verify if the uri scheme is supported before calling this method @@ -101,9 +99,7 @@ uri scheme Launches the app specified by the uri scheme - - - + May throw System.UriFormatException if uri is malformed. Verify if the uri scheme is supported before calling this method @@ -125,12 +121,8 @@ Request that contains information on the file to open. Requests to open a file in an application based on content type. - - - - - - + + diff --git a/docs/en/Xamarin.Essentials/Locale.xml b/docs/en/Xamarin.Essentials/Locale.xml index faa346422..9821b24f9 100644 --- a/docs/en/Xamarin.Essentials/Locale.xml +++ b/docs/en/Xamarin.Essentials/Locale.xml @@ -12,9 +12,7 @@ Represents a specific geographical, political, or cultural region. - - - + @@ -31,9 +29,7 @@ Country name or code. - - - + This value may vary between platforms. @@ -51,12 +47,8 @@ Unique Id of the Locale. - - - - - - + + @@ -73,9 +65,7 @@ Language name or code. - - - + This value may vary between platforms. @@ -93,12 +83,8 @@ Display name of the Locale. - - - - - - + + diff --git a/docs/en/Xamarin.Essentials/Location.xml b/docs/en/Xamarin.Essentials/Location.xml index e059b52ed..1c88db366 100644 --- a/docs/en/Xamarin.Essentials/Location.xml +++ b/docs/en/Xamarin.Essentials/Location.xml @@ -12,9 +12,7 @@ The latitude, longitude, altitude and time information reported by the device. - - - + @@ -29,9 +27,7 @@ Default constructor. - - - + @@ -49,9 +45,7 @@ Location to copy values from. Copy constructor. - - - + @@ -71,9 +65,7 @@ Default latitude for location. Default longitude for location. Parametrized constructor with latitude and longitude parameters. - - - + @@ -95,9 +87,7 @@ Default longitude for location. Timestamp for the location (Utc based). Parametrized constructor with latitude, longitude and timestamp parameters. - - - + @@ -119,9 +109,7 @@ Default longitude for location. To be added. Parametrized constructor with latitude, longitude and altitude parameters. - - - + @@ -139,9 +127,7 @@ Gets or sets the horizontal accuracy (in meters) of the location. The horizontal accuracy of the location. - - - + @@ -203,9 +189,7 @@ Units to return. Calculate distance between two locations. Distance between two locations in the unit selected. - - - + @@ -233,9 +217,7 @@ Unit to return. Calculate distance between two locations. Distance calculated. - - - + @@ -263,9 +245,7 @@ Unit to use. Calculate distance between two locations. Distance calculated. - - - + @@ -295,9 +275,7 @@ Units to return. Calculate distance between two locations. Distance between two locations in the unit selected. - - - + @@ -337,9 +315,7 @@ Inform if location is from GPS or from Mock. True if is from Mock and False if from GPS. - - - + @@ -357,9 +333,7 @@ Gets or sets the latitude of location. Latitude of the location. - - - + @@ -377,9 +351,7 @@ Gets or sets the longitude of location. Longitude of the location. - - - + @@ -397,9 +369,7 @@ Speed in meters per second. Speed measured by the device.. - - - + @@ -417,9 +387,7 @@ Gets or sets the timestamp of the location. UTC timestamp. - - - + @@ -456,9 +424,7 @@ Gets or sets the vertical accuracy (in meters) of the location. The vertical accuracy of the location. - - - + diff --git a/docs/en/Xamarin.Essentials/LocationExtensions.xml b/docs/en/Xamarin.Essentials/LocationExtensions.xml index e827e08de..971168e9d 100644 --- a/docs/en/Xamarin.Essentials/LocationExtensions.xml +++ b/docs/en/Xamarin.Essentials/LocationExtensions.xml @@ -12,9 +12,7 @@ Location Extensions - - - + @@ -40,9 +38,7 @@ Units to use during calculation. Extension to calculate distance from location to another location. Distance in units fro two locations. - - - + @@ -70,9 +66,7 @@ Units to use. Extension to calculate distance from location to another location. Distance calculated. - - - + @@ -94,9 +88,7 @@ Location to open to. Open maps to this location. Task to wait. - - - + @@ -120,9 +112,7 @@ Options to use. Open maps to this location. Task to wait. - - - + diff --git a/docs/en/Xamarin.Essentials/Magnetometer.xml b/docs/en/Xamarin.Essentials/Magnetometer.xml index c1c45719e..b71a849d2 100644 --- a/docs/en/Xamarin.Essentials/Magnetometer.xml +++ b/docs/en/Xamarin.Essentials/Magnetometer.xml @@ -12,9 +12,7 @@ Detect device's orentation relative to Earth's magnetic field in microteslas (µ). - - - + @@ -32,9 +30,7 @@ Gets if magnetometer is being monitored. If monitoring. - - - + @@ -51,9 +47,7 @@ Event triggered when reading of sensor changes. - - - + @@ -92,9 +86,7 @@ Stop monitoring for changes to magnetometer. - - - + diff --git a/docs/en/Xamarin.Essentials/MagnetometerChangedEventArgs.xml b/docs/en/Xamarin.Essentials/MagnetometerChangedEventArgs.xml index 03425d067..4f9f490fa 100644 --- a/docs/en/Xamarin.Essentials/MagnetometerChangedEventArgs.xml +++ b/docs/en/Xamarin.Essentials/MagnetometerChangedEventArgs.xml @@ -12,9 +12,7 @@ Event arguments containing the current reading. - - - + @@ -50,9 +48,7 @@ Gets the reading of the magnetometer. The reading. - - - + diff --git a/docs/en/Xamarin.Essentials/MagnetometerData.xml b/docs/en/Xamarin.Essentials/MagnetometerData.xml index c4511d3c3..20d836549 100644 --- a/docs/en/Xamarin.Essentials/MagnetometerData.xml +++ b/docs/en/Xamarin.Essentials/MagnetometerData.xml @@ -21,9 +21,7 @@ Data for magnetometer changes. - - - + @@ -89,9 +87,7 @@ Object to compare If equal to another object If equal - - - + @@ -116,9 +112,7 @@ Other MagnetometerData to compare with. Compares the underlying Vector3 instances. True if they match, otherwise false. - - - + @@ -137,9 +131,7 @@ Get the hash code for object. The hash code - - - + @@ -156,12 +148,8 @@ Gets the magnetic field vector in microteslas (µ). - - - - - - + + @@ -185,9 +173,7 @@ Right to compare Equality operator for equals If equal - - - + @@ -211,9 +197,7 @@ Right to check Inequality check If not equal - - - + diff --git a/docs/en/Xamarin.Essentials/MainThread.xml b/docs/en/Xamarin.Essentials/MainThread.xml index 63b6c96eb..8d8b82d87 100644 --- a/docs/en/Xamarin.Essentials/MainThread.xml +++ b/docs/en/Xamarin.Essentials/MainThread.xml @@ -33,9 +33,7 @@ Action to execute. Invokes an action on the main thread of the application. - - - + @@ -168,9 +166,7 @@ Gets if it is the current main UI thread. If main thread. - - - + diff --git a/docs/en/Xamarin.Essentials/Map.xml b/docs/en/Xamarin.Essentials/Map.xml index daf581b1c..727d9be14 100644 --- a/docs/en/Xamarin.Essentials/Map.xml +++ b/docs/en/Xamarin.Essentials/Map.xml @@ -12,9 +12,7 @@ Map helpers to open a route to specified places via default platforms maps implementation. - - - + @@ -36,9 +34,7 @@ Location to open on maps. Open the installed application to a specific location. Task to be completed. - - - + @@ -60,9 +56,7 @@ Placemark to open on maps. Open the installed application to a specific placemark. Task to be completed. - - - + @@ -86,9 +80,7 @@ Longitude to open to. Open the installed application to a specific location. Task to be completed. - - - + @@ -112,9 +104,7 @@ Launch options to use. Open the installed application to a specific location with launch options. Task to be completed. - - - + @@ -138,9 +128,7 @@ Launch options to use. Open the installed application to a specific placemark with launch options. Task to be completed. - - - + @@ -166,9 +154,7 @@ Launch options to use. Open the installed application to a specific location. Task to be completed. - - - + diff --git a/docs/en/Xamarin.Essentials/MapLaunchOptions.xml b/docs/en/Xamarin.Essentials/MapLaunchOptions.xml index 9bb17c158..b52f0de51 100644 --- a/docs/en/Xamarin.Essentials/MapLaunchOptions.xml +++ b/docs/en/Xamarin.Essentials/MapLaunchOptions.xml @@ -45,9 +45,7 @@ Name of destination to display to user. Gets the name. - - - + @@ -65,9 +63,7 @@ The navigation mode to use. Gets the navigation mode. - - - + diff --git a/docs/en/Xamarin.Essentials/NetworkAccess.xml b/docs/en/Xamarin.Essentials/NetworkAccess.xml index 3768993a9..83fb0bd03 100644 --- a/docs/en/Xamarin.Essentials/NetworkAccess.xml +++ b/docs/en/Xamarin.Essentials/NetworkAccess.xml @@ -11,9 +11,7 @@ Various states of the connection to the internet. - - - + diff --git a/docs/en/Xamarin.Essentials/NotImplementedInReferenceAssemblyException.xml b/docs/en/Xamarin.Essentials/NotImplementedInReferenceAssemblyException.xml index 92a7db24c..8c9839140 100644 --- a/docs/en/Xamarin.Essentials/NotImplementedInReferenceAssemblyException.xml +++ b/docs/en/Xamarin.Essentials/NotImplementedInReferenceAssemblyException.xml @@ -12,9 +12,7 @@ Exception that occurs when executed from a reference assembly. This usually means that the NuGet was not installed into the app project. - - - + @@ -29,9 +27,7 @@ Default constructor. - - - + diff --git a/docs/en/Xamarin.Essentials/OpenFileRequest.xml b/docs/en/Xamarin.Essentials/OpenFileRequest.xml index fd5380585..92acc11d8 100644 --- a/docs/en/Xamarin.Essentials/OpenFileRequest.xml +++ b/docs/en/Xamarin.Essentials/OpenFileRequest.xml @@ -12,9 +12,7 @@ Standard request for opening a file to another application. - - - + @@ -29,9 +27,7 @@ Open request with an existing file. - - - + @@ -51,9 +47,7 @@ Title to display on open dialog if available. File to open. Open request with an existing file. - - - + @@ -73,9 +67,7 @@ Title to display on open dialog if available. File to open. Open request with an existing file. - - - + @@ -92,12 +84,8 @@ File to open. - - - - - - + + @@ -114,12 +102,8 @@ Title to display on open dialog if available. - - - - - - + + diff --git a/docs/en/Xamarin.Essentials/OrientationSensor.xml b/docs/en/Xamarin.Essentials/OrientationSensor.xml index 2098df6a3..e12381fc9 100644 --- a/docs/en/Xamarin.Essentials/OrientationSensor.xml +++ b/docs/en/Xamarin.Essentials/OrientationSensor.xml @@ -12,9 +12,7 @@ Device orientation (quaternion) relative to magnetic fields. - - - + @@ -32,9 +30,7 @@ Gets of currently monitoring the sensor. If monitoring. - - - + @@ -53,9 +49,7 @@ Event triggered when reading of sensor changes. - - - + @@ -76,9 +70,7 @@ Sensor speed to use. Starts monitoring orientation sensor with specific speed. - - - + @@ -96,9 +88,7 @@ Stops monitoring. - - - + diff --git a/docs/en/Xamarin.Essentials/OrientationSensorChangedEventArgs.xml b/docs/en/Xamarin.Essentials/OrientationSensorChangedEventArgs.xml index 29a62e485..e0e723ec3 100644 --- a/docs/en/Xamarin.Essentials/OrientationSensorChangedEventArgs.xml +++ b/docs/en/Xamarin.Essentials/OrientationSensorChangedEventArgs.xml @@ -12,9 +12,7 @@ Orientation event args when reading changes. - - - + @@ -50,9 +48,7 @@ Gets the reading when it changes. The current Reading - - - + diff --git a/docs/en/Xamarin.Essentials/OrientationSensorData.xml b/docs/en/Xamarin.Essentials/OrientationSensorData.xml index 69888deed..e61614a49 100644 --- a/docs/en/Xamarin.Essentials/OrientationSensorData.xml +++ b/docs/en/Xamarin.Essentials/OrientationSensorData.xml @@ -21,9 +21,7 @@ Sensor data for orientation. - - - + @@ -93,9 +91,7 @@ Object to compare If equal to another object If equal - - - + @@ -120,9 +116,7 @@ Other OrientationSensorData to compare with. Compares the underlying Quaternion instances. True if they match, otherwise false. - - - + @@ -141,9 +135,7 @@ Get the hash code for object. The hash code - - - + @@ -167,9 +159,7 @@ Right to compare Equality operator for equals If equal - - - + @@ -193,9 +183,7 @@ Right to check Inequality check If not equal - - - + @@ -213,9 +201,7 @@ Gets the current orientation that represents a Quaternion. Gets the current orientation - - - + diff --git a/docs/en/Xamarin.Essentials/PermissionException.xml b/docs/en/Xamarin.Essentials/PermissionException.xml index e36a69d1b..a0f5b5af2 100644 --- a/docs/en/Xamarin.Essentials/PermissionException.xml +++ b/docs/en/Xamarin.Essentials/PermissionException.xml @@ -12,9 +12,7 @@ Exception that occures when calling an API that requires a specific permission. - - - + @@ -32,9 +30,7 @@ Permission that is required. Constructor with permission information. - - - + diff --git a/docs/en/Xamarin.Essentials/PermissionStatus.xml b/docs/en/Xamarin.Essentials/PermissionStatus.xml index 25ebc2ccb..9ddfb9f16 100644 --- a/docs/en/Xamarin.Essentials/PermissionStatus.xml +++ b/docs/en/Xamarin.Essentials/PermissionStatus.xml @@ -11,9 +11,7 @@ Status of the permission. - - - + diff --git a/docs/en/Xamarin.Essentials/Permissions+BasePermission.xml b/docs/en/Xamarin.Essentials/Permissions+BasePermission.xml index d55d34577..6c29931ff 100644 --- a/docs/en/Xamarin.Essentials/Permissions+BasePermission.xml +++ b/docs/en/Xamarin.Essentials/Permissions+BasePermission.xml @@ -85,7 +85,6 @@ Request a specific permission from the user. - The status of the permission that was requested. The request will be prompted to the user if it hasn't been granted. iOS only allows the permission to be requested once, any additional requests will return immediatelly. diff --git a/docs/en/Xamarin.Essentials/Permissions+Battery.xml b/docs/en/Xamarin.Essentials/Permissions+Battery.xml index 3f9dcd30a..7a403afe6 100644 --- a/docs/en/Xamarin.Essentials/Permissions+Battery.xml +++ b/docs/en/Xamarin.Essentials/Permissions+Battery.xml @@ -46,9 +46,7 @@ Check status of Battery permission. Task of PermissionStatus for Battery. - - - + diff --git a/docs/en/Xamarin.Essentials/Permissions+NetworkState.xml b/docs/en/Xamarin.Essentials/Permissions+NetworkState.xml index ae51a4dc0..2e710fc05 100644 --- a/docs/en/Xamarin.Essentials/Permissions+NetworkState.xml +++ b/docs/en/Xamarin.Essentials/Permissions+NetworkState.xml @@ -50,7 +50,6 @@ Get a list of required permissions. - List of required permissions. To be added. diff --git a/docs/en/Xamarin.Essentials/Permissions.xml b/docs/en/Xamarin.Essentials/Permissions.xml index 0203cbaef..307dbb928 100644 --- a/docs/en/Xamarin.Essentials/Permissions.xml +++ b/docs/en/Xamarin.Essentials/Permissions.xml @@ -12,9 +12,7 @@ Access to checking and requesting application permissions. - - - + @@ -39,12 +37,10 @@ - To be added. + The permission to check. Checks the status of a specific permission. The current status of the permission. - - - + @@ -66,9 +62,7 @@ Name of the capability on UWP. Checks if a specific capability name is declared. If the capability is declared. - - - + @@ -90,9 +84,7 @@ The name of the specific permission in the manifest to check. Checks if a permission is declared in the Android manifest file. If the permission is declared or not. - - - + @@ -114,9 +106,7 @@ The usage key to check in the info.plist. Check if a usage key is specified in the info.plist file. If it is declared in the info.plist. - - - + @@ -159,7 +149,7 @@ - To be added. + The permission to request. Request a specific permission from the user. The status of the permission that was requested. The request will be prompted to the user if it hasn't been granted. iOS only allows the permission to be requested once, any additional requests will return immediatelly. @@ -189,6 +179,7 @@ The type of permission. Gets whether you should show UI with rationale for requesting a permission. + Returns true if rationale should be displayed, otherwise false. diff --git a/docs/en/Xamarin.Essentials/PhoneDialer.xml b/docs/en/Xamarin.Essentials/PhoneDialer.xml index 13aaa3b60..56fc90c8b 100644 --- a/docs/en/Xamarin.Essentials/PhoneDialer.xml +++ b/docs/en/Xamarin.Essentials/PhoneDialer.xml @@ -12,9 +12,7 @@ Open the platform phone dialer to place a call. - - - + diff --git a/docs/en/Xamarin.Essentials/Placemark.xml b/docs/en/Xamarin.Essentials/Placemark.xml index 50d7678c0..205a13778 100644 --- a/docs/en/Xamarin.Essentials/Placemark.xml +++ b/docs/en/Xamarin.Essentials/Placemark.xml @@ -12,9 +12,7 @@ User-friendly description of a geographic coordinate. This contains information such as the name of the place, its address, and other information. - - - + @@ -29,9 +27,7 @@ Default constructor for placemark. - - - + @@ -49,9 +45,7 @@ Placemark to copy. Constructor to create a deep copy. - - - + @@ -69,9 +63,7 @@ Gets or sets the administrative area name of the address, for example, "CA", or null if it is unknown. The admin area. - - - + @@ -89,9 +81,7 @@ Gets or sets the country ISO code. The country ISO code. - - - + @@ -109,9 +99,7 @@ Gets or sets the country name. The country name. - - - + @@ -129,9 +117,7 @@ Gets or sets the feature name. The feature name. - - - + @@ -149,9 +135,7 @@ Gets or sets the city or town. The city or town of the locality. - - - + @@ -169,9 +153,7 @@ Gets or sets the location of the placemark. The location of the placemark. - - - + @@ -189,9 +171,7 @@ Gets or sets the postal code. The postal code. - - - + @@ -209,9 +189,7 @@ Gets or sets the sub-administrative area name of the address, for example, "Santa Clara County", or null if it is unknown. The sub-admin area. - - - + @@ -229,9 +207,7 @@ Gets or sets the sub locality. The sub locality. - - - + @@ -249,9 +225,7 @@ Gets or sets optional info: sub street or region. The sub thoroughfare. - - - + @@ -269,9 +243,7 @@ Gets or sets the street name. The street name. - - - + @@ -289,8 +261,8 @@ A string representation of the placemark. - A string representation of the placemark. - To be added. + Returns a string representation of the placemark. + diff --git a/docs/en/Xamarin.Essentials/PlacemarkExtensions.xml b/docs/en/Xamarin.Essentials/PlacemarkExtensions.xml index 58896fb83..080157096 100644 --- a/docs/en/Xamarin.Essentials/PlacemarkExtensions.xml +++ b/docs/en/Xamarin.Essentials/PlacemarkExtensions.xml @@ -33,9 +33,7 @@ The placemark to open the map to. Open the map to the placemark. - - - + To be added. diff --git a/docs/en/Xamarin.Essentials/Platform.xml b/docs/en/Xamarin.Essentials/Platform.xml index cc9e16be0..32b60ee80 100644 --- a/docs/en/Xamarin.Essentials/Platform.xml +++ b/docs/en/Xamarin.Essentials/Platform.xml @@ -12,9 +12,7 @@ Platform specific helpers. - - - + @@ -31,9 +29,7 @@ Event that is triggered when any Android Activity's state changes. - - - + @@ -51,9 +47,7 @@ The current application's context. The applications context. - - - + @@ -97,9 +91,7 @@ Gets the current Activity. This value is set OnCreate, OnPause, and OnResume. The current Activity or null if none or Init was not called. - - - + @@ -118,9 +110,7 @@ Get the currently visible UIViewController. The visible UIViewController or null if not found. - - - + @@ -141,9 +131,7 @@ Application to initialize with. Initialize Xamarin.Essentials with Android's application class. - - - + @@ -166,9 +154,7 @@ Activity to use for initialization. Bundle of the activity. Initialize Xamarin.Essentials with Android's activity and bundle. - - - + @@ -253,9 +239,7 @@ The permissions from the corresponding overridden method in an activity. The grantResults from the corresponding overridden method in an activity. Pass permission request results from an activity's overridden method to the library for handling internal permission requests. - - - + @@ -349,9 +333,7 @@ Cancellation token to stop waiting for Activity to be created or active. Wait for an Activity to be create or active. The current Android Activity. - - - + diff --git a/docs/en/Xamarin.Essentials/PointExtensions.xml b/docs/en/Xamarin.Essentials/PointExtensions.xml index cdc05c827..bd500ac3c 100644 --- a/docs/en/Xamarin.Essentials/PointExtensions.xml +++ b/docs/en/Xamarin.Essentials/PointExtensions.xml @@ -12,9 +12,7 @@ Extension methods for Point. - - - + @@ -36,9 +34,7 @@ The point to convert. Converts the point ot the system representation. The converted point. - - - + @@ -60,9 +56,7 @@ The point to convert. Converts the point ot the system representation. The converted point. - - - + @@ -84,9 +78,7 @@ The point to convert. Converts the point ot the system representation. The converted point. - - - + @@ -108,9 +100,7 @@ The point to convert. Converts the point ot the system representation. The converted point. - - - + @@ -132,9 +122,7 @@ The point to convert. Converts the point ot the system representation. The converted point. - - - + @@ -156,9 +144,7 @@ The point to convert. Converts the point ot the system representation. The converted point. - - - + diff --git a/docs/en/Xamarin.Essentials/Preferences.xml b/docs/en/Xamarin.Essentials/Preferences.xml index 1257c4224..7fb0d2bf5 100644 --- a/docs/en/Xamarin.Essentials/Preferences.xml +++ b/docs/en/Xamarin.Essentials/Preferences.xml @@ -43,9 +43,7 @@ Clears all keys and values. - - - + @@ -66,9 +64,7 @@ Shared container name. Clears all keys and values. - - - + @@ -90,9 +86,7 @@ Preference key. Checks the existence of a given key. Returns true if the key exists. - - - + @@ -116,9 +110,7 @@ Shared container name. Checks the existence of a given key. Returns true if the key exists. - - - + @@ -142,9 +134,7 @@ Default value to return if the key does not exist. Gets the value for a given key, or the default specified if the key does not exist. Value for the given key, or the default if it does not exist. - - - + @@ -168,9 +158,7 @@ Default value to return if the key does not exist. Gets the value for a given key, or the default specified if the key does not exist. Value for the given key, or the default if it does not exist. - - - + @@ -194,9 +182,7 @@ Default value to return if the key does not exist. Gets the value for a given key, or the default specified if the key does not exist. Value for the given key, or the default if it does not exist. - - - + @@ -220,9 +206,7 @@ Default value to return if the key does not exist. Gets the value for a given key, or the default specified if the key does not exist. Value for the given key, or the default if it does not exist. - - - + @@ -246,9 +230,7 @@ Default value to return if the key does not exist. Gets the value for a given key, or the default specified if the key does not exist. Value for the given key, or the default if it does not exist. - - - + @@ -272,9 +254,7 @@ Default value to return if the key does not exist. Gets the value for a given key, or the default specified if the key does not exist. Value for the given key, or the default if it does not exist. - - - + @@ -298,9 +278,7 @@ Default value to return if the key does not exist. Gets the value for a given key, or the default specified if the key does not exist. Value for the given key, or the default if it does not exist. - - - + @@ -326,9 +304,7 @@ Shared container key. Gets the value for a given key, or the default specified if the key does not exist. Value for the given key, or the default if it does not exist. - - - + @@ -354,9 +330,7 @@ Shared container key. Gets the value for a given key, or the default specified if the key does not exist. Value for the given key, or the default if it does not exist. - - - + @@ -382,9 +356,7 @@ Shared container key. Gets the value for a given key, or the default specified if the key does not exist. Value for the given key, or the default if it does not exist. - - - + @@ -410,9 +382,7 @@ Shared container key. Gets the value for a given key, or the default specified if the key does not exist. Value for the given key, or the default if it does not exist. - - - + @@ -438,9 +408,7 @@ Shared container key. Gets the value for a given key, or the default specified if the key does not exist. Value for the given key, or the default if it does not exist. - - - + @@ -466,9 +434,7 @@ Shared container key. Gets the value for a given key, or the default specified if the key does not exist. Value for the given key, or the default if it does not exist. - - - + @@ -494,9 +460,7 @@ Shared container key. Gets the value for a given key, or the default specified if the key does not exist. Value for the given key, or the default if it does not exist. - - - + @@ -517,9 +481,7 @@ Preference key. Removes a key and its associated value if it exists. - - - + @@ -542,9 +504,7 @@ Preference key. Shared container name. Removes a key and its associated value if it exists. - - - + @@ -567,9 +527,7 @@ Preference key. Preference value. Sets a value for a given key. - - - + @@ -592,9 +550,7 @@ Preference key. Preference value. Sets a value for a given key. - - - + @@ -617,9 +573,7 @@ Preference key. Preference value. Sets a value for a given key. - - - + @@ -642,9 +596,7 @@ Preference key. Preference value. Sets a value for a given key. - - - + @@ -667,9 +619,7 @@ Preference key. Preference value. Sets a value for a given key. - - - + @@ -692,9 +642,7 @@ Preference key. Preference value. Sets a value for a given key. - - - + @@ -717,9 +665,7 @@ Preference key. Preference value. Sets a value for a given key. - - - + @@ -744,9 +690,7 @@ Preference value. Shared container name. Sets a value for a given key. - - - + @@ -771,9 +715,7 @@ Preference value. Shared container name. Sets a value for a given key. - - - + @@ -798,9 +740,7 @@ Preference value. Shared container name. Sets a value for a given key. - - - + @@ -825,9 +765,7 @@ Preference value. Shared container name. Sets a value for a given key. - - - + @@ -852,9 +790,7 @@ Preference value. Shared container name. Sets a value for a given key. - - - + @@ -879,9 +815,7 @@ Preference value. Shared container name. Sets a value for a given key. - - - + @@ -906,9 +840,7 @@ Preference value. Shared container name. Sets a value for a given key. - - - + diff --git a/docs/en/Xamarin.Essentials/ReadOnlyFile.xml b/docs/en/Xamarin.Essentials/ReadOnlyFile.xml index a58f389d4..a9efe3c0c 100644 --- a/docs/en/Xamarin.Essentials/ReadOnlyFile.xml +++ b/docs/en/Xamarin.Essentials/ReadOnlyFile.xml @@ -12,9 +12,7 @@ A representation of a file and its content type. - - - + @@ -32,9 +30,7 @@ Full file path. Construct a file taking in file path. - - - + @@ -52,9 +48,7 @@ File to use for ReadOnlyFile Construct a file taking in file. - - - + @@ -74,9 +68,7 @@ Full file path. Content type (MIME type) of the file (eg: `image/png`). Construct a file taking in file path and content type (MIME type). - - - + diff --git a/docs/en/Xamarin.Essentials/RectangleExtensions.xml b/docs/en/Xamarin.Essentials/RectangleExtensions.xml index 6b53e3c4e..ff251240e 100644 --- a/docs/en/Xamarin.Essentials/RectangleExtensions.xml +++ b/docs/en/Xamarin.Essentials/RectangleExtensions.xml @@ -12,9 +12,7 @@ Extension methods for Rectangle. - - - + @@ -36,9 +34,7 @@ The base rectangle to convert. Convert to system rectangle. The converted rectangle. - - - + @@ -60,9 +56,7 @@ The base rectangle to convert. Convert to system rectangle. The converted rectangle. - - - + @@ -84,9 +78,7 @@ The base rectangle to convert. Convert to system rectangle. The converted rectangle. - - - + @@ -108,9 +100,7 @@ The base rectangle to convert. Convert to system rectangle. The converted rectangle. - - - + @@ -132,9 +122,7 @@ The base rectangle to convert. Convert to system rectangle. The converted rectangle. - - - + @@ -156,9 +144,7 @@ The base rectangle to convert. Convert to system rectangle. The converted rectangle. - - - + diff --git a/docs/en/Xamarin.Essentials/Screenshot.xml b/docs/en/Xamarin.Essentials/Screenshot.xml index def485101..f557a7722 100644 --- a/docs/en/Xamarin.Essentials/Screenshot.xml +++ b/docs/en/Xamarin.Essentials/Screenshot.xml @@ -12,7 +12,7 @@ Take a screenshot depicting the current View. - Output is always a PNG file. + @@ -29,9 +29,9 @@ - To be added. - To be added. - To be added. + Capture the screen. + Returns the caprured screenshot. + @@ -47,9 +47,9 @@ System.Boolean - To be added. - To be added. - To be added. + Gets a value indicating whether capturing screenshots are supported. + + diff --git a/docs/en/Xamarin.Essentials/ScreenshotFormat.xml b/docs/en/Xamarin.Essentials/ScreenshotFormat.xml index 2745bea21..76cd415f1 100644 --- a/docs/en/Xamarin.Essentials/ScreenshotFormat.xml +++ b/docs/en/Xamarin.Essentials/ScreenshotFormat.xml @@ -10,8 +10,8 @@ System.Enum - To be added. - To be added. + The format to read screenshot images. + @@ -28,7 +28,7 @@ 1 - To be added. + Read the screenshot image as a JPEG. @@ -45,7 +45,7 @@ 0 - To be added. + Read the screenshot image as a PNG. diff --git a/docs/en/Xamarin.Essentials/SecureStorage.xml b/docs/en/Xamarin.Essentials/SecureStorage.xml index a385c33dd..ef3dc5d1a 100644 --- a/docs/en/Xamarin.Essentials/SecureStorage.xml +++ b/docs/en/Xamarin.Essentials/SecureStorage.xml @@ -66,9 +66,7 @@ Storage Key. Gets the decrypted value for a given Key. Decrypted string or null if key does not exist. - - - + @@ -108,9 +106,7 @@ The key to remove. Removes the encrypted key/value pair for the given key. Returns true if the key value pair was removed. - - - + @@ -128,9 +124,7 @@ Removes all of the stored encrypted key/value pairs. - - - + @@ -153,12 +147,8 @@ Storage Key. The value to be encrypted. Stores the value which is encrypted, for a given Key. - - - - - - + + @@ -183,12 +173,8 @@ The value to be encrypted. The KeyChain accessibility to create the encrypted record with. Stores the value which is encrypted, for a given Key. iOS override to specify SecAccessible for the KeyChain. - - - - - - + + diff --git a/docs/en/Xamarin.Essentials/SensorSpeed.xml b/docs/en/Xamarin.Essentials/SensorSpeed.xml index 870c870b3..1b8a6cc3e 100644 --- a/docs/en/Xamarin.Essentials/SensorSpeed.xml +++ b/docs/en/Xamarin.Essentials/SensorSpeed.xml @@ -11,9 +11,7 @@ Sensor speed to monitor for changes. - - - + diff --git a/docs/en/Xamarin.Essentials/Share.xml b/docs/en/Xamarin.Essentials/Share.xml index 89467d782..fed62e938 100644 --- a/docs/en/Xamarin.Essentials/Share.xml +++ b/docs/en/Xamarin.Essentials/Share.xml @@ -12,9 +12,7 @@ Share data such as text and uris to other applications. - - - + @@ -36,9 +34,7 @@ Text to share. Show the share user interface to share text. Task when completed. - - - + @@ -60,9 +56,7 @@ File request to share. Show the user interface to share a file. Task when completed. - - - + @@ -84,9 +78,7 @@ Multiple Files request to share. Show the user interface to share a multiple files. Task when completed. - - - + @@ -108,9 +100,7 @@ Share request with options. Show the share user interface to share text or uri. Task when completed. - - - + @@ -134,9 +124,7 @@ Title for the share user interface. Show the share user interface to share text with a title. Task when completed. - - - + diff --git a/docs/en/Xamarin.Essentials/ShareFile.xml b/docs/en/Xamarin.Essentials/ShareFile.xml index bf9cc6809..8603c3ac5 100644 --- a/docs/en/Xamarin.Essentials/ShareFile.xml +++ b/docs/en/Xamarin.Essentials/ShareFile.xml @@ -12,9 +12,7 @@ A file to be shared. - - - + @@ -32,9 +30,7 @@ The full path and filename. File to be shared. - - - + @@ -52,9 +48,7 @@ Existing file to be shared. Shares an existing file. - - - + @@ -73,12 +67,8 @@ Full path and filename. Explicit content type (MIME type) of the file (eg: `image/png`). - - - - - - + + diff --git a/docs/en/Xamarin.Essentials/ShareFileRequest.xml b/docs/en/Xamarin.Essentials/ShareFileRequest.xml index 1386bd920..f9cfa3cb7 100644 --- a/docs/en/Xamarin.Essentials/ShareFileRequest.xml +++ b/docs/en/Xamarin.Essentials/ShareFileRequest.xml @@ -12,9 +12,7 @@ Standard request for sharing a file to another application. - - - + @@ -29,9 +27,7 @@ Default constructor. - - - + @@ -49,9 +45,7 @@ Existing file. Share request with an existing file. - - - + @@ -69,9 +63,7 @@ Existing file. Share request with an existing file. - - - + @@ -91,9 +83,7 @@ Title to use on the share user interface. Existing file. Share request with an existing file. - - - + @@ -113,9 +103,7 @@ Title to use on the share user interface. Existing file. Share requerst with an existing file. - - - + @@ -132,12 +120,8 @@ Gets or sets the file to share. - - - - - - + + diff --git a/docs/en/Xamarin.Essentials/ShareMultipleFilesRequest.xml b/docs/en/Xamarin.Essentials/ShareMultipleFilesRequest.xml index 2a1749013..06bb4f07c 100644 --- a/docs/en/Xamarin.Essentials/ShareMultipleFilesRequest.xml +++ b/docs/en/Xamarin.Essentials/ShareMultipleFilesRequest.xml @@ -12,9 +12,7 @@ Standard request for sharing a multiple files to another application. - - - + @@ -29,15 +27,13 @@ Default constructor. - - - + - - + + Constructor Xamarin.Essentials @@ -49,15 +45,13 @@ Existing files. Share request with an existing files. - - - + - - + + Constructor Xamarin.Essentials @@ -69,15 +63,13 @@ Existing files. Share request with an existing files. - - - + - - + + Constructor Xamarin.Essentials @@ -91,15 +83,13 @@ Title to use on the share user interface. Existing files. Share request with an existing files. - - - + - - + + Constructor Xamarin.Essentials @@ -113,14 +103,12 @@ Title to use on the share user interface. Existing files. Share requerst with an existing files. - - - + - - + + Property @@ -128,16 +116,34 @@ 1.0.0.0 - System.Collections.Generic.IEnumerable<Xamarin.Essentials.ShareFile> + System.Collections.Generic.List<Xamarin.Essentials.ShareFile> Gets or sets the files to share. - - - - - - + + + + + + + + + Method + + Xamarin.Essentials + 1.0.0.0 + + + Xamarin.Essentials.ShareMultipleFilesRequest + + + + + + The request to convert into a multi-file request. + Convert a single file share request into a multi-file share request. + Returns a multi-file share request containing the single file. + diff --git a/docs/en/Xamarin.Essentials/ShareRequestBase.xml b/docs/en/Xamarin.Essentials/ShareRequestBase.xml index 8e871dc2f..aa856f2a6 100644 --- a/docs/en/Xamarin.Essentials/ShareRequestBase.xml +++ b/docs/en/Xamarin.Essentials/ShareRequestBase.xml @@ -11,12 +11,8 @@ - - - - - - + + @@ -30,12 +26,8 @@ - - - - - - + + @@ -52,9 +44,7 @@ Gets or sets the source rectangle to display the Share UI from. - - - + This is only used on iOS currently. @@ -73,9 +63,7 @@ Gets or sets the title to use on the share user interface The title to be displayed. - - - + diff --git a/docs/en/Xamarin.Essentials/ShareTextRequest.xml b/docs/en/Xamarin.Essentials/ShareTextRequest.xml index b14cc4000..e70ab267a 100644 --- a/docs/en/Xamarin.Essentials/ShareTextRequest.xml +++ b/docs/en/Xamarin.Essentials/ShareTextRequest.xml @@ -12,9 +12,7 @@ Standard request for sharing text to other applications. - - - + @@ -29,9 +27,7 @@ Default constructor. - - - + @@ -49,9 +45,7 @@ Text to share. Share request with text. - - - + @@ -71,9 +65,7 @@ Text to share. Title for share user interface. Share request with text and title. - - - + @@ -91,9 +83,7 @@ Gets or sets the subject that is sometimes used for applications such as mail clients. The subject. - - - + @@ -111,9 +101,7 @@ Gets or sets the main text or message to share. The main text. - - - + diff --git a/docs/en/Xamarin.Essentials/SizeExtensions.xml b/docs/en/Xamarin.Essentials/SizeExtensions.xml index 69bac27a7..3718a64dc 100644 --- a/docs/en/Xamarin.Essentials/SizeExtensions.xml +++ b/docs/en/Xamarin.Essentials/SizeExtensions.xml @@ -12,9 +12,7 @@ Extension methods for Size. - - - + @@ -36,9 +34,7 @@ Base size to convert. Convert to system Size. Converted size. - - - + @@ -60,9 +56,7 @@ Base size to convert. Convert to system Size. Converted size. - - - + @@ -84,9 +78,7 @@ Base size to convert. Convert to system Size. Converted size. - - - + @@ -108,9 +100,7 @@ Base size to convert. Convert to system SizeF. Converted size. - - - + @@ -132,9 +122,7 @@ Base size to convert. Convert to system SizeF. Converted size. - - - + @@ -156,9 +144,7 @@ Base size to convert. Convert to system SizeF. Converted size. - - - + diff --git a/docs/en/Xamarin.Essentials/Sms.xml b/docs/en/Xamarin.Essentials/Sms.xml index 4d186b307..0ab8afb53 100644 --- a/docs/en/Xamarin.Essentials/Sms.xml +++ b/docs/en/Xamarin.Essentials/Sms.xml @@ -12,9 +12,7 @@ Provides an easy way to allow the user to send SMS messages. - - - + @@ -32,12 +30,8 @@ Opens the default SMS client to allow the user to send the message. - - - - - - + + @@ -58,12 +52,8 @@ The message to send. Opens the default SMS client to allow the user to send the message. - - - - - - + + diff --git a/docs/en/Xamarin.Essentials/SmsMessage.xml b/docs/en/Xamarin.Essentials/SmsMessage.xml index 869fce8c9..4fd8ca313 100644 --- a/docs/en/Xamarin.Essentials/SmsMessage.xml +++ b/docs/en/Xamarin.Essentials/SmsMessage.xml @@ -12,9 +12,7 @@ Represents a single SMS message. - - - + @@ -29,9 +27,7 @@ Creates a new instance of SmsMessage - - - + @@ -51,9 +47,7 @@ Content of the message Recipients to receive the message. Creates a new instance of SmsMessage - - - + @@ -73,9 +67,7 @@ Content of the message Recipient to receive the message. Creates a new instance of SmsMessage - - - + @@ -92,12 +84,8 @@ Gets the body of the message. - - - - - - + + @@ -114,12 +102,8 @@ Gets the recipient of the message. - - - - - - + + diff --git a/docs/en/Xamarin.Essentials/SpeechOptions.xml b/docs/en/Xamarin.Essentials/SpeechOptions.xml index a3b79e58f..406b6ba30 100644 --- a/docs/en/Xamarin.Essentials/SpeechOptions.xml +++ b/docs/en/Xamarin.Essentials/SpeechOptions.xml @@ -12,9 +12,7 @@ Text-to-speech options. - - - + @@ -28,12 +26,8 @@ - - - - - - + + @@ -50,9 +44,7 @@ Gets or Sets a specific Locale to use with text to speech. - - - + The Language property should match a Locale value returned by GetLocalesAsync(). @@ -70,9 +62,7 @@ The pitch to use when speaking. - - - + This value should be between 0f and 2.0f. @@ -90,9 +80,7 @@ The volume to use when speaking. - - - + This value should be between 0f and 1.0f. diff --git a/docs/en/Xamarin.Essentials/TextToSpeech.xml b/docs/en/Xamarin.Essentials/TextToSpeech.xml index 1ccc92931..3c37b371d 100644 --- a/docs/en/Xamarin.Essentials/TextToSpeech.xml +++ b/docs/en/Xamarin.Essentials/TextToSpeech.xml @@ -12,9 +12,7 @@ Speak text to Speech - - - + @@ -32,12 +30,8 @@ Gets a list of Locales supported by Text to Speech. - - - - - - + + @@ -60,12 +54,8 @@ The text to speak.. Optional cancellation token to stop speaking. Speaks the given text with default options. - - - - - - + + @@ -90,12 +80,8 @@ The options to use for speaking. Optional cancellation token to stop speaking. Speaks the given text with the specified options. - - - - - - + + diff --git a/docs/en/Xamarin.Essentials/VersionTracking.xml b/docs/en/Xamarin.Essentials/VersionTracking.xml index 989468ab9..4100174cf 100644 --- a/docs/en/Xamarin.Essentials/VersionTracking.xml +++ b/docs/en/Xamarin.Essentials/VersionTracking.xml @@ -12,9 +12,7 @@ Provides an easy way to track an app's version on a device. - - - + @@ -31,12 +29,8 @@ Gets the collection of build numbers of the app that ran on this device. - - - - - - + + @@ -53,12 +47,8 @@ Gets the current build of the app. - - - - - - + + @@ -75,12 +65,8 @@ Gets the current version number of the app. - - - - - - + + @@ -97,12 +83,8 @@ Gets the build number of first version of the app that was installed on this device. - - - - - - + + @@ -119,12 +101,8 @@ Gets the version number of the first version of the app that was installed on this device. - - - - - - + + @@ -141,12 +119,8 @@ Gets a value indicating whether this is the first time this app has ever been launched on this device. - - - - - - + + @@ -168,9 +142,7 @@ The build number. Determines if this is the first launch of the app for a specified build number. Returns true if this is the first launch of the app for the specified build number; otherwise false. - - - + @@ -187,12 +159,8 @@ Gets a value indicating if this is the first launch of the app for the current build number. - - - - - - + + @@ -209,12 +177,8 @@ Gets a value indicating if this is the first launch of the app for the current version number. - - - - - - + + @@ -236,9 +200,7 @@ The version number. Determines if this is the first launch of the app for a specified version number. Returns true if this is the first launch of the app for the specified version number; otherwise false. - - - + @@ -255,12 +217,8 @@ Gets the build number for the previously run version. - - - - - - + + @@ -277,12 +235,8 @@ Gets the version number for the previously run version. - - - - - - + + @@ -300,9 +254,7 @@ Starts tracking version information. - - - + @@ -319,12 +271,8 @@ Gets the collection of version numbers of the app that ran on this device. - - - - - - + + diff --git a/docs/en/Xamarin.Essentials/Vibration.xml b/docs/en/Xamarin.Essentials/Vibration.xml index 2856e0999..bd7604e1c 100644 --- a/docs/en/Xamarin.Essentials/Vibration.xml +++ b/docs/en/Xamarin.Essentials/Vibration.xml @@ -12,9 +12,7 @@ Provides an easy way to make the device vibrate. - - - + @@ -32,9 +30,7 @@ Cancel any current vibrations. - - - + @@ -52,9 +48,7 @@ Vibrate the device fo 500ms. - - - + diff --git a/docs/en/Xamarin.Essentials/WebAuthenticator.xml b/docs/en/Xamarin.Essentials/WebAuthenticator.xml index 5c7ffbe20..17c8c9b14 100644 --- a/docs/en/Xamarin.Essentials/WebAuthenticator.xml +++ b/docs/en/Xamarin.Essentials/WebAuthenticator.xml @@ -36,9 +36,7 @@ Expected callback url that the navigation flow will eventually redirect to. Begin an authentication flow by navigating to the specified url and waiting for a callback/redirect to the callbackUrl scheme. Returns a result parsed out from the callback url. - - - + diff --git a/docs/en/Xamarin.Essentials/WebAuthenticatorCallbackActivity.xml b/docs/en/Xamarin.Essentials/WebAuthenticatorCallbackActivity.xml index d0a036bd3..5e3a4adcb 100644 --- a/docs/en/Xamarin.Essentials/WebAuthenticatorCallbackActivity.xml +++ b/docs/en/Xamarin.Essentials/WebAuthenticatorCallbackActivity.xml @@ -26,9 +26,7 @@ - - - + To be added. To be added. @@ -48,15 +46,9 @@ - - - - - This method should be called from the same method in the parent activity which initiated the web authentication. - - - - + + This method should be called from the same method in the parent activity which initiated the web authentication. + diff --git a/docs/en/Xamarin.Essentials/WebAuthenticatorResult.xml b/docs/en/Xamarin.Essentials/WebAuthenticatorResult.xml index 67e69c8c2..8285f35e4 100644 --- a/docs/en/Xamarin.Essentials/WebAuthenticatorResult.xml +++ b/docs/en/Xamarin.Essentials/WebAuthenticatorResult.xml @@ -26,9 +26,7 @@ - - - + To be added. @@ -83,9 +81,7 @@ The value for the `access_token` key. Access Token parsed from the callback URI access_token parameter. - - - + @@ -103,9 +99,7 @@ The expiry date as calculated by the timestamp of when the result was created plus the value in seconds for the `expires_in` key. Timestamp of the creation of the object instance plus the expires_in seconds parsed from the callback URI. - - - + @@ -126,12 +120,8 @@ Key from the callback URI's query string. Gets a value for a given key from the dictionary. - - - - - - + + @@ -166,12 +156,8 @@ The dictionary of key/value pairs parsed form the callback URI's querystring. - - - - - - + + @@ -191,16 +177,10 @@ - - - - - - + + Puts a key/value pair into the dictionary. - - - + @@ -218,9 +198,7 @@ The value for the `refresh_token` key. Refresh Token parsed from the callback URI refresh_token parameter. - - - + @@ -238,9 +216,7 @@ The refresh token expiry date as calculated by the timestamp of when the result was created plus the value in seconds for the refresh_token_expires_in key. Timestamp of the creation of the object instance plus the expires_in seconds parsed from the callback URI. - - - + @@ -257,12 +233,8 @@ The timestamp when the class was instantiated, which usually corresponds with the parsed result of a request. - - - - - - + + diff --git a/docs/en/index.xml b/docs/en/index.xml index 17470ad7b..5ffb9c6f3 100644 --- a/docs/en/index.xml +++ b/docs/en/index.xml @@ -99,7 +99,10 @@ System.Runtime.Versioning.TargetFramework("Xamarin.Mac,Version=v2.0", FrameworkDisplayName="Xamarin.Mac") - System.Reflection.AssemblyInformationalVersion("1.0.0") + System.Reflection.AssemblyMetadata("RepositoryUrl", "https://github.com/xamarin/Essentials") + + + System.Reflection.AssemblyInformationalVersion("1.0.0+2fb7c9ee75e244e990677fa4ef85bbfd730a97e7") @@ -248,6 +251,7 @@ + diff --git a/docs/en/ns-Xamarin.Essentials.xml b/docs/en/ns-Xamarin.Essentials.xml index 064f83088..7421b0321 100644 --- a/docs/en/ns-Xamarin.Essentials.xml +++ b/docs/en/ns-Xamarin.Essentials.xml @@ -1,8 +1,6 @@ Xamarin.Essentials offers a cross-platform API for platform specific features. - - - + From 5b00532c04c900884150db34cda5b231f0cc3a99 Mon Sep 17 00:00:00 2001 From: Dimov Dima Date: Sat, 26 Dec 2020 02:45:28 +0300 Subject: [PATCH 06/56] [Contacts][Android] Changes to display of contacts list on ContactPicker (#1600) * Fixes #1559 (contacts picker are presented in a list without showing any individual numbers) * Update the MSBuild.Sdk.Extras Co-authored-by: Matthew Leibowitz --- .../DeviceTests.Shared.csproj | 2 +- .../Contacts/Contacts.android.cs | 124 +++++++++--------- Xamarin.Essentials/Xamarin.Essentials.csproj | 2 +- 3 files changed, 63 insertions(+), 65 deletions(-) diff --git a/DeviceTests/DeviceTests.Shared/DeviceTests.Shared.csproj b/DeviceTests/DeviceTests.Shared/DeviceTests.Shared.csproj index 8e6758173..a5fa1aea8 100644 --- a/DeviceTests/DeviceTests.Shared/DeviceTests.Shared.csproj +++ b/DeviceTests/DeviceTests.Shared/DeviceTests.Shared.csproj @@ -1,4 +1,4 @@ - + Xamarin.iOS10;MonoAndroid90;uap10.0.16299 Xamarin.iOS10;MonoAndroid90; diff --git a/Xamarin.Essentials/Contacts/Contacts.android.cs b/Xamarin.Essentials/Contacts/Contacts.android.cs index fa813494b..ff0639c1b 100644 --- a/Xamarin.Essentials/Contacts/Contacts.android.cs +++ b/Xamarin.Essentials/Contacts/Contacts.android.cs @@ -5,22 +5,31 @@ using Android.Content; using Android.Database; using Android.Provider; +using CommonDataKinds = Android.Provider.ContactsContract.CommonDataKinds; +using StructuredName = Android.Provider.ContactsContract.CommonDataKinds.StructuredName; namespace Xamarin.Essentials { public static partial class Contacts { + const string idCol = ContactsContract.Contacts.InterfaceConsts.Id; + const string displayNameCol = ContactsContract.Contacts.InterfaceConsts.DisplayName; + const string mimetypeCol = ContactsContract.Data.InterfaceConsts.Mimetype; + + const string contactIdCol = CommonDataKinds.Phone.InterfaceConsts.ContactId; + static async Task PlatformPickContactAsync() { - var intent = new Intent(Intent.ActionPick); - intent.SetType(ContactsContract.CommonDataKinds.Phone.ContentType); - + var intent = new Intent(Intent.ActionPick, ContactsContract.Contacts.ContentUri); var result = await IntermediateActivity.StartAsync(intent, Platform.requestCodePickContact).ConfigureAwait(false); + if (result?.Data == null) + return null; - if (result?.Data != null) - return GetContact(result.Data); + using var cursor = Platform.ContentResolver.Query(result?.Data, null, null, null, null); + if (cursor?.MoveToFirst() != true) + return null; - return null; + return GetContact(cursor); } static Task> PlatformGetAllAsync(CancellationToken cancellationToken) @@ -30,106 +39,95 @@ static Task> PlatformGetAllAsync(CancellationToken cancella IEnumerable GetEnumerable() { - if (cursor?.MoveToFirst() ?? false) + if (cursor?.MoveToFirst() == true) { do { - var contact = GetContact(cursor, ContactsContract.Contacts.InterfaceConsts.Id); + var contact = GetContact(cursor); if (contact != null) yield return contact; } while (cursor.MoveToNext()); } - cursor.Close(); + cursor?.Close(); } } - internal static Contact GetContact(global::Android.Net.Uri contactUri) + static Contact GetContact(ICursor cursor) { - if (contactUri == null) - return default; - - using var cursor = Platform.ContentResolver.Query(contactUri, null, null, null, null); + var id = GetString(cursor, idCol); + var displayName = GetString(cursor, displayNameCol); + var phones = GetNumbers(id)?.Select(p => new ContactPhone(p)); + var emails = GetEmails(id)?.Select(e => new ContactEmail(e)); + var (prefix, given, middle, family, suffix) = GetName(id); - if (cursor.MoveToFirst()) - { - return GetContact( - cursor, - ContactsContract.CommonDataKinds.Phone.InterfaceConsts.ContactId); - } - - return default; + return new Contact(id, prefix, given, middle, family, suffix, phones, emails, displayName); } - static Contact GetContact(ICursor cursor, string idKey) + static IEnumerable GetNumbers(string id) { - var displayName = cursor.GetString(cursor.GetColumnIndex(ContactsContract.Contacts.InterfaceConsts.DisplayName)); - var idQ = new string[1] { cursor.GetString(cursor.GetColumnIndex(idKey)) }; - var phones = GetNumbers(idQ)?.Select( - item => new ContactPhone(item.data)); - var emails = GetEmails(idQ)?.Select( - item => new ContactEmail(item.data)); - var name = GetName(idQ[0]); - - return new Contact(idQ[0], name.Prefix, name.Given, name.Middle, name.Family, name.Suffix, phones, emails, displayName); - } + var uri = CommonDataKinds.Phone.ContentUri + .BuildUpon() + .AppendQueryParameter(ContactsContract.RemoveDuplicateEntries, "1") + .Build(); - static IEnumerable<(string data, string type)> GetNumbers(string[] idQ) - { - var uri = ContactsContract.CommonDataKinds.Phone.ContentUri.BuildUpon().AppendQueryParameter(ContactsContract.RemoveDuplicateEntries, "1").Build(); - var cursor = Platform.ContentResolver.Query(uri, null, $"{ContactsContract.CommonDataKinds.Phone.InterfaceConsts.ContactId}=?", idQ, null); + var cursor = Platform.ContentResolver.Query(uri, null, $"{contactIdCol}=?", new[] { id }, null); - return ReadCursorItems(cursor, ContactsContract.CommonDataKinds.Phone.Number, ContactsContract.CommonDataKinds.Phone.InterfaceConsts.Type); + return ReadCursorItems(cursor, CommonDataKinds.Phone.Number); } - static IEnumerable<(string data, string type)> GetEmails(string[] idQ) + static IEnumerable GetEmails(string id) { - var uri = ContactsContract.CommonDataKinds.Email.ContentUri.BuildUpon().AppendQueryParameter(ContactsContract.RemoveDuplicateEntries, "1").Build(); - var cursor = Platform.ContentResolver.Query(uri, null, $"{ContactsContract.CommonDataKinds.Phone.InterfaceConsts.ContactId}=?", idQ, null); + var uri = CommonDataKinds.Email.ContentUri + .BuildUpon() + .AppendQueryParameter(ContactsContract.RemoveDuplicateEntries, "1") + .Build(); + + var cursor = Platform.ContentResolver.Query(uri, null, $"{contactIdCol}=?", new[] { id }, null); - return ReadCursorItems(cursor, ContactsContract.CommonDataKinds.Email.Address, ContactsContract.CommonDataKinds.Email.InterfaceConsts.Type); + return ReadCursorItems(cursor, CommonDataKinds.Email.Address); } - static IEnumerable<(string data, string type)> ReadCursorItems(ICursor cursor, string dataKey, string typeKey) + static IEnumerable ReadCursorItems(ICursor cursor, string dataKey) { - if (cursor?.MoveToFirst() ?? false) + if (cursor?.MoveToFirst() == true) { do { - var data = cursor.GetString(cursor.GetColumnIndex(dataKey)); - var type = cursor.GetString(cursor.GetColumnIndex(typeKey)); - + var data = GetString(cursor, dataKey); if (data != null) - yield return (data, type); + yield return data; } while (cursor.MoveToNext()); } cursor?.Close(); } - static (string Prefix, string Given, string Middle, string Family, string Suffix) GetName(string idQ) + static (string Prefix, string Given, string Middle, string Family, string Suffix) GetName(string id) { - var whereNameParams = new string[] { ContactsContract.CommonDataKinds.StructuredName.ContentItemType }; - var whereName = $"{ContactsContract.Data.InterfaceConsts.Mimetype} = ? AND {ContactsContract.CommonDataKinds.StructuredName.InterfaceConsts.ContactId} = {idQ}"; + var selection = $"{mimetypeCol}=? AND {contactIdCol}=?"; + var selectionArgs = new string[] { StructuredName.ContentItemType, id }; + using var cursor = Platform.ContentResolver.Query( ContactsContract.Data.ContentUri, null, - whereName, - whereNameParams, + selection, + selectionArgs, null); - if (cursor?.MoveToFirst() ?? false) - { - return ( - cursor.GetString(cursor.GetColumnIndex(ContactsContract.CommonDataKinds.StructuredName.Prefix)), - cursor.GetString(cursor.GetColumnIndex(ContactsContract.CommonDataKinds.StructuredName.GivenName)), - cursor.GetString(cursor.GetColumnIndex(ContactsContract.CommonDataKinds.StructuredName.MiddleName)), - cursor.GetString(cursor.GetColumnIndex(ContactsContract.CommonDataKinds.StructuredName.FamilyName)), - cursor.GetString(cursor.GetColumnIndex(ContactsContract.CommonDataKinds.StructuredName.Suffix))); - } + if (cursor?.MoveToFirst() != true) + return (null, null, null, null, null); - return (null, null, null, null, null); + return ( + GetString(cursor, StructuredName.Prefix), + GetString(cursor, StructuredName.GivenName), + GetString(cursor, StructuredName.MiddleName), + GetString(cursor, StructuredName.FamilyName), + GetString(cursor, StructuredName.Suffix)); } + + static string GetString(ICursor cursor, string column) => + cursor.GetString(cursor.GetColumnIndex(column)); } } diff --git a/Xamarin.Essentials/Xamarin.Essentials.csproj b/Xamarin.Essentials/Xamarin.Essentials.csproj index 185960f9e..fe0d17d49 100644 --- a/Xamarin.Essentials/Xamarin.Essentials.csproj +++ b/Xamarin.Essentials/Xamarin.Essentials.csproj @@ -1,4 +1,4 @@ - + netstandard1.0;netstandard2.0;Xamarin.iOS10;Xamarin.TVOS10;Xamarin.WatchOS10;MonoAndroid80;MonoAndroid81;MonoAndroid90;MonoAndroid10.0;tizen40;Xamarin.Mac20; $(TargetFrameworks);uap10.0.16299; From 2919357f0b5079eae7a8ac7d9562d964a0b44dd7 Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Sat, 26 Dec 2020 21:38:14 +0200 Subject: [PATCH 07/56] Use manual selectors for new APIs (#1606) This will allow the code to build in older VS versions Fixes #1589 --- .../LocationExtensions.ios.tvos.watchos.macos.cs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/Xamarin.Essentials/Types/LocationExtensions.ios.tvos.watchos.macos.cs b/Xamarin.Essentials/Types/LocationExtensions.ios.tvos.watchos.macos.cs index 80355b6df..9d1c7082e 100644 --- a/Xamarin.Essentials/Types/LocationExtensions.ios.tvos.watchos.macos.cs +++ b/Xamarin.Essentials/Types/LocationExtensions.ios.tvos.watchos.macos.cs @@ -8,6 +8,9 @@ namespace Xamarin.Essentials { public static partial class LocationExtensions { + [System.Runtime.InteropServices.DllImport(ObjCRuntime.Constants.ObjectiveCLibrary, EntryPoint = "objc_msgSend")] + public static extern CLAuthorizationStatus CLAuthorizationStatus_objc_msgSend(IntPtr receiver, IntPtr selector); + internal static Location ToLocation(this CLPlacemark placemark) => new Location { @@ -52,15 +55,19 @@ internal static DateTimeOffset ToDateTime(this NSDate timestamp) internal static CLAuthorizationStatus GetAuthorizationStatus(this CLLocationManager locationManager) { -#if !__MACOS__ // this is coming in macOS 11 -#if __WATCHOS__ +#if __MACOS__ + if (DeviceInfo.Version >= new Version(11, 0)) +#elif __WATCHOS__ if (Platform.HasOSVersion(7, 0)) #else if (Platform.HasOSVersion(14, 0)) #endif - return locationManager.AuthorizationStatus; + { + // return locationManager.AuthorizationStatus; -#endif + var sel = ObjCRuntime.Selector.GetHandle("authorizationStatus"); + return CLAuthorizationStatus_objc_msgSend(locationManager.Handle, sel); + } return CLLocationManager.Status; } From 9996ab23e541c67e606c3b2d4494c29c2f01d6b0 Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Tue, 29 Dec 2020 01:12:05 +0200 Subject: [PATCH 08/56] Update some libraries in the samples (#1610) * Update some libraries and fix bad text in iOS * Install packages for the migration --- .../DeviceTests.Android.csproj | 5 +++-- .../DeviceTests.Shared/DeviceTests.Shared.csproj | 2 +- .../DeviceTests.UWP/DeviceTests.UWP.csproj | 2 +- .../DeviceTests.iOS/DeviceTests.iOS.csproj | 2 +- Samples/Samples.Android/Samples.Android.csproj | 8 ++++---- Samples/Samples.Mac/Samples.Mac.csproj | 4 ++-- Samples/Samples.UWP/Samples.UWP.csproj | 4 ++-- Samples/Samples.iOS/Samples.iOS.csproj | 4 ++-- Samples/Samples/App.xaml | 15 +++++++++++++++ Samples/Samples/Samples.csproj | 4 ++-- Tests/Tests.csproj | 2 +- 11 files changed, 34 insertions(+), 18 deletions(-) diff --git a/DeviceTests/DeviceTests.Android/DeviceTests.Android.csproj b/DeviceTests/DeviceTests.Android/DeviceTests.Android.csproj index 0240f5a08..078ec2233 100644 --- a/DeviceTests/DeviceTests.Android/DeviceTests.Android.csproj +++ b/DeviceTests/DeviceTests.Android/DeviceTests.Android.csproj @@ -59,12 +59,13 @@ - + - + + diff --git a/DeviceTests/DeviceTests.Shared/DeviceTests.Shared.csproj b/DeviceTests/DeviceTests.Shared/DeviceTests.Shared.csproj index a5fa1aea8..dbdc75841 100644 --- a/DeviceTests/DeviceTests.Shared/DeviceTests.Shared.csproj +++ b/DeviceTests/DeviceTests.Shared/DeviceTests.Shared.csproj @@ -23,7 +23,7 @@ - + diff --git a/DeviceTests/DeviceTests.UWP/DeviceTests.UWP.csproj b/DeviceTests/DeviceTests.UWP/DeviceTests.UWP.csproj index 9e1398bf9..0a0b216ab 100644 --- a/DeviceTests/DeviceTests.UWP/DeviceTests.UWP.csproj +++ b/DeviceTests/DeviceTests.UWP/DeviceTests.UWP.csproj @@ -114,7 +114,7 @@ - + diff --git a/DeviceTests/DeviceTests.iOS/DeviceTests.iOS.csproj b/DeviceTests/DeviceTests.iOS/DeviceTests.iOS.csproj index b340089a1..15f023fa2 100644 --- a/DeviceTests/DeviceTests.iOS/DeviceTests.iOS.csproj +++ b/DeviceTests/DeviceTests.iOS/DeviceTests.iOS.csproj @@ -77,7 +77,7 @@ - + diff --git a/Samples/Samples.Android/Samples.Android.csproj b/Samples/Samples.Android/Samples.Android.csproj index d373ef946..79cb0d908 100644 --- a/Samples/Samples.Android/Samples.Android.csproj +++ b/Samples/Samples.Android/Samples.Android.csproj @@ -58,11 +58,11 @@ - - + + - - + + diff --git a/Samples/Samples.Mac/Samples.Mac.csproj b/Samples/Samples.Mac/Samples.Mac.csproj index c8ce05423..6063995a9 100644 --- a/Samples/Samples.Mac/Samples.Mac.csproj +++ b/Samples/Samples.Mac/Samples.Mac.csproj @@ -61,8 +61,8 @@ - - + + diff --git a/Samples/Samples.UWP/Samples.UWP.csproj b/Samples/Samples.UWP/Samples.UWP.csproj index fb0afd793..fc861f41d 100644 --- a/Samples/Samples.UWP/Samples.UWP.csproj +++ b/Samples/Samples.UWP/Samples.UWP.csproj @@ -119,8 +119,8 @@ - - + + diff --git a/Samples/Samples.iOS/Samples.iOS.csproj b/Samples/Samples.iOS/Samples.iOS.csproj index c17c6cd67..ba11be8a1 100644 --- a/Samples/Samples.iOS/Samples.iOS.csproj +++ b/Samples/Samples.iOS/Samples.iOS.csproj @@ -80,8 +80,8 @@ - - + + diff --git a/Samples/Samples/App.xaml b/Samples/Samples/App.xaml index 69b065d88..c5348dff4 100644 --- a/Samples/Samples/App.xaml +++ b/Samples/Samples/App.xaml @@ -10,6 +10,21 @@ + + + + + \ No newline at end of file diff --git a/Samples/Samples/Samples.csproj b/Samples/Samples/Samples.csproj index bd5450509..dd9a13ad1 100644 --- a/Samples/Samples/Samples.csproj +++ b/Samples/Samples/Samples.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/Tests/Tests.csproj b/Tests/Tests.csproj index 4b89bfe8f..e6814b1d2 100644 --- a/Tests/Tests.csproj +++ b/Tests/Tests.csproj @@ -15,7 +15,7 @@ - + From c541cbe04396033a9caebc5074d95685477c6563 Mon Sep 17 00:00:00 2001 From: Dimov Dima Date: Sat, 16 Jan 2021 02:50:40 +0300 Subject: [PATCH 09/56] [Launcher][iOS] Fixing save to files bug (#1609) * changed creating UIDocumentInteractionController on Launcher * changed PlatformOpenAsync on Launcher iOS --- .../Launcher/Launcher.ios.tvos.cs | 40 +++++-------------- 1 file changed, 10 insertions(+), 30 deletions(-) diff --git a/Xamarin.Essentials/Launcher/Launcher.ios.tvos.cs b/Xamarin.Essentials/Launcher/Launcher.ios.tvos.cs index 2bbaa3bda..67d4c4c00 100644 --- a/Xamarin.Essentials/Launcher/Launcher.ios.tvos.cs +++ b/Xamarin.Essentials/Launcher/Launcher.ios.tvos.cs @@ -1,6 +1,7 @@ using System; using System.Diagnostics; using System.Threading.Tasks; +using CoreGraphics; using Foundation; using UIKit; @@ -34,43 +35,22 @@ static Task PlatformTryOpenAsync(Uri uri) static Task PlatformOpenAsync(OpenFileRequest request) { - var fileUrl = NSUrl.FromFilename(request.File.FullPath); - - documentController = UIDocumentInteractionController.FromUrl(fileUrl); - documentController.Delegate = new DocumentControllerDelegate + documentController = new UIDocumentInteractionController() { - DismissHandler = () => - { - documentController?.Dispose(); - documentController = null; - } + Name = request.File.FileName, + Url = NSUrl.FromFilename(request.File.FullPath), + Uti = request.File.ContentType }; - documentController.Uti = request.File.ContentType; - - var vc = Platform.GetCurrentViewController(); - - CoreGraphics.CGRect? rect = null; - if (DeviceInfo.Idiom == DeviceIdiom.Tablet) - { - rect = new CoreGraphics.CGRect(new CoreGraphics.CGPoint(vc.View.Bounds.Width / 2, vc.View.Bounds.Height), CoreGraphics.CGRect.Empty.Size); - } - else - { - rect = vc.View.Bounds; - } - documentController.PresentOpenInMenu(rect.Value, vc.View, true); + var view = Platform.GetCurrentUIViewController().View; + var rect = DeviceInfo.Idiom == DeviceIdiom.Tablet + ? new CGRect(new CGPoint(view.Bounds.Width / 2, view.Bounds.Height), CGRect.Empty.Size) + : view.Bounds; + documentController.PresentOpenInMenu(rect, view, true); return Task.CompletedTask; } - class DocumentControllerDelegate : UIDocumentInteractionControllerDelegate - { - public Action DismissHandler { get; set; } - - public override void DidDismissOpenInMenu(UIDocumentInteractionController controller) - => DismissHandler?.Invoke(); - } #else static Task PlatformOpenAsync(OpenFileRequest request) => throw new FeatureNotSupportedException(); From 2ef34078058ddff29cd9231ec34bb39bd723eea4 Mon Sep 17 00:00:00 2001 From: Dominique Louis Date: Sun, 17 Jan 2021 04:15:56 +0000 Subject: [PATCH 10/56] Use NSSpeechSynthesizer.AttributesForVoice to correctly populate the X.E Locale on Mac. (#1623) * Use Attributes to correctly populate the X.E Locale on Mac. Fix Locale Name on iOS. * Add ? check just in case the atrribute look-up fails and ToString() is called on a null object. * Improve the contents of the picker for Android Co-authored-by: Matthew Leibowitz --- .../ViewModel/TextToSpeechViewModel.cs | 27 ++++++++++++++----- .../TextToSpeech.ios.tvos.watchos.cs | 2 +- .../TextToSpeech/TextToSpeech.macos.cs | 5 ++-- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/Samples/Samples/ViewModel/TextToSpeechViewModel.cs b/Samples/Samples/ViewModel/TextToSpeechViewModel.cs index aa33e972a..0be4fa795 100644 --- a/Samples/Samples/ViewModel/TextToSpeechViewModel.cs +++ b/Samples/Samples/ViewModel/TextToSpeechViewModel.cs @@ -1,4 +1,5 @@ -using System.Linq; +using System; +using System.Linq; using System.Threading; using System.Threading.Tasks; using System.Windows.Input; @@ -87,13 +88,27 @@ void OnCancel() async Task OnPickLocale() { - var locales = await TextToSpeech.GetLocalesAsync(); - var names = locales.Select(i => i.Name).ToArray(); + var allLocales = await TextToSpeech.GetLocalesAsync(); + var locales = allLocales + .OrderBy(i => i.Language.ToLowerInvariant()) + .ToArray(); - var result = await Application.Current.MainPage.DisplayActionSheet("Pick", "OK", null, names); + var languages = locales + .Select(i => string.IsNullOrEmpty(i.Country) ? i.Language : $"{i.Language} ({i.Country})") + .ToArray(); - selectedLocale = locales.FirstOrDefault(i => i.Name == result); - Locale = (result == "OK" || string.IsNullOrEmpty(result)) ? "Default" : result; + var result = await Application.Current.MainPage.DisplayActionSheet("Pick", "OK", null, languages); + + if (!string.IsNullOrEmpty(result) && Array.IndexOf(languages, result) is int idx && idx != -1) + { + selectedLocale = locales[idx]; + Locale = result; + } + else + { + selectedLocale = null; + Locale = "Default"; + } } public ICommand CancelCommand { get; } diff --git a/Xamarin.Essentials/TextToSpeech/TextToSpeech.ios.tvos.watchos.cs b/Xamarin.Essentials/TextToSpeech/TextToSpeech.ios.tvos.watchos.cs index f7f555eb6..bf6eca930 100644 --- a/Xamarin.Essentials/TextToSpeech/TextToSpeech.ios.tvos.watchos.cs +++ b/Xamarin.Essentials/TextToSpeech/TextToSpeech.ios.tvos.watchos.cs @@ -13,7 +13,7 @@ public static partial class TextToSpeech internal static Task> PlatformGetLocalesAsync() => Task.FromResult(AVSpeechSynthesisVoice.GetSpeechVoices() - .Select(v => new Locale(v.Language, null, v.Language, v.Identifier))); + .Select(v => new Locale(v.Language, null, v.Name, v.Identifier))); internal static async Task PlatformSpeakAsync(string text, SpeechOptions options, CancellationToken cancelToken = default) { diff --git a/Xamarin.Essentials/TextToSpeech/TextToSpeech.macos.cs b/Xamarin.Essentials/TextToSpeech/TextToSpeech.macos.cs index 626aecde0..f8977801d 100644 --- a/Xamarin.Essentials/TextToSpeech/TextToSpeech.macos.cs +++ b/Xamarin.Essentials/TextToSpeech/TextToSpeech.macos.cs @@ -14,7 +14,8 @@ public static partial class TextToSpeech internal static Task> PlatformGetLocalesAsync() => Task.FromResult(NSSpeechSynthesizer.AvailableVoices - .Select(v => new Locale(v, null, null, null))); + .Select(voice => NSSpeechSynthesizer.AttributesForVoice(voice)) + .Select(attribute => new Locale(attribute["VoiceLanguage"]?.ToString(), null, attribute["VoiceName"]?.ToString(), attribute["VoiceIdentifier"]?.ToString()))); internal static async Task PlatformSpeakAsync(string text, SpeechOptions options, CancellationToken cancelToken = default) { @@ -30,7 +31,7 @@ internal static async Task PlatformSpeakAsync(string text, SpeechOptions options ss.Volume = NormalizeVolume(options.Volume); if (options.Locale != null) - ss.Voice = options.Locale.Language; + ss.Voice = options.Locale.Id; } ssd.FinishedSpeaking += OnFinishedSpeaking; From ee2ded0c44399655a08740e05183d51c01ec8e13 Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Tue, 19 Jan 2021 04:49:29 +0200 Subject: [PATCH 11/56] Fix Tests and CI (#1644) --- DeviceTests/DeviceTests.Shared/Geocoding_Tests.cs | 2 +- Samples/Samples/ViewModel/GeocodingViewModel.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/DeviceTests/DeviceTests.Shared/Geocoding_Tests.cs b/DeviceTests/DeviceTests.Shared/Geocoding_Tests.cs index 771612655..ef2dac7f2 100644 --- a/DeviceTests/DeviceTests.Shared/Geocoding_Tests.cs +++ b/DeviceTests/DeviceTests.Shared/Geocoding_Tests.cs @@ -48,7 +48,7 @@ public async Task Get_Placemarks_Location(double latitude, double longitude) } [Theory] - [InlineData("Microsoft Building 25 Redmond WA USA")] + [InlineData("Redmond, WA, USA")] public async Task Get_Locations(string address) { try diff --git a/Samples/Samples/ViewModel/GeocodingViewModel.cs b/Samples/Samples/ViewModel/GeocodingViewModel.cs index 4db043f1f..82266b387 100644 --- a/Samples/Samples/ViewModel/GeocodingViewModel.cs +++ b/Samples/Samples/ViewModel/GeocodingViewModel.cs @@ -10,7 +10,7 @@ public class GeocodingViewModel : BaseViewModel { string lat = 47.67398.ToString(); string lon = (-122.121513).ToString(); - string address = "Microsoft Building 25 Redmond WA USA"; + string address = "Microsoft Building 25 Redmond WA"; string geocodeAddress; string geocodePosition; From e6d5ea47c7eb0400c74b6aa3cd52111b68c54936 Mon Sep 17 00:00:00 2001 From: bares43 Date: Tue, 19 Jan 2021 05:49:17 +0100 Subject: [PATCH 12/56] Throw FileNotFoundException when email attachment is not found (#1341) --- Xamarin.Essentials/Email/Email.ios.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Xamarin.Essentials/Email/Email.ios.cs b/Xamarin.Essentials/Email/Email.ios.cs index b8035526b..0415350cb 100644 --- a/Xamarin.Essentials/Email/Email.ios.cs +++ b/Xamarin.Essentials/Email/Email.ios.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System.IO; +using System.Threading.Tasks; using Foundation; using MessageUI; using UIKit; @@ -42,6 +43,9 @@ static Task ComposeWithMailCompose(EmailMessage message) foreach (var attachment in message.Attachments) { var data = NSData.FromFile(attachment.FullPath); + if (data == null) + throw new FileNotFoundException($"Attachment {attachment.FileName} not found.", attachment.FullPath); + controller.AddAttachmentData(data, attachment.ContentType, attachment.FileName); } } From 7232fa5046394718cf72a31f0571a2908ac371a6 Mon Sep 17 00:00:00 2001 From: James Montemagno Date: Mon, 18 Jan 2021 20:49:48 -0800 Subject: [PATCH 13/56] Fixes #1613 only add WiFi if not celluar (#1636) --- .../Connectivity.ios.tvos.macos.reachability.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Xamarin.Essentials/Connectivity/Connectivity.ios.tvos.macos.reachability.cs b/Xamarin.Essentials/Connectivity/Connectivity.ios.tvos.macos.reachability.cs index 7823f086f..073df700f 100644 --- a/Xamarin.Essentials/Connectivity/Connectivity.ios.tvos.macos.reachability.cs +++ b/Xamarin.Essentials/Connectivity/Connectivity.ios.tvos.macos.reachability.cs @@ -83,9 +83,11 @@ internal static IEnumerable GetActiveConnectionType() { status.Add(NetworkStatus.ReachableViaCarrierDataNetwork); } -#endif - + else if (defaultNetworkAvailable) +#else + // If the connection is reachable and no connection is required, then assume it's WiFi if (defaultNetworkAvailable) +#endif { status.Add(NetworkStatus.ReachableViaWiFiNetwork); } From 7b73cad73ded7363ffb71006ea102787c96f2659 Mon Sep 17 00:00:00 2001 From: Matthew Leibowitz Date: Tue, 19 Jan 2021 17:41:49 +0200 Subject: [PATCH 14/56] Update PULL_REQUEST_TEMPLATE.md --- .github/PULL_REQUEST_TEMPLATE.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index c918f7b74..bc46302e5 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,3 +1,20 @@ + + ### Description of Change ### Describe your changes here. From 12bfc8a7d7335457e40c8da4882ec8f582ede0a8 Mon Sep 17 00:00:00 2001 From: Dimov Dima Date: Tue, 19 Jan 2021 22:25:08 +0300 Subject: [PATCH 15/56] [Enhancement][Launcher][iOS] ability to set PresentationSourceBounds (#1637) Fixes #1611 Co-authored-by: Matthew Leibowitz --- Samples/Samples/View/LauncherPage.xaml | 4 ++-- Samples/Samples/ViewModel/LauncherViewModel.cs | 10 +++++++--- .../Launcher/Launcher.ios.tvos.cs | 17 ++++++++++++++--- Xamarin.Essentials/Launcher/Launcher.shared.cs | 8 +++++++- docs/en/Xamarin.Essentials/OpenFileRequest.xml | 18 ++++++++++++++++++ 5 files changed, 48 insertions(+), 9 deletions(-) diff --git a/Samples/Samples/View/LauncherPage.xaml b/Samples/Samples/View/LauncherPage.xaml index 1a3c2d09f..c6efd422b 100644 --- a/Samples/Samples/View/LauncherPage.xaml +++ b/Samples/Samples/View/LauncherPage.xaml @@ -35,8 +35,8 @@