diff --git a/Xamarin.Essentials/AppInfo/AppInfo.android.cs b/Xamarin.Essentials/AppInfo/AppInfo.android.cs index d397abd25..045b8a050 100644 --- a/Xamarin.Essentials/AppInfo/AppInfo.android.cs +++ b/Xamarin.Essentials/AppInfo/AppInfo.android.cs @@ -3,6 +3,11 @@ using Android.Content.PM; using Android.Content.Res; using Android.Provider; +#if __ANDROID_29__ +using AndroidX.Core.Content.PM; +#else +using Android.Support.V4.Content.PM; +#endif namespace Xamarin.Essentials { @@ -33,7 +38,13 @@ static string PlatformGetBuild() var packageName = Platform.AppContext.PackageName; using (var info = pm.GetPackageInfo(packageName, PackageInfoFlags.MetaData)) { +#if __ANDROID_28__ + return PackageInfoCompat.GetLongVersionCode(info).ToString(CultureInfo.InvariantCulture); +#else +#pragma warning disable CS0618 // Type or member is obsolete return info.VersionCode.ToString(CultureInfo.InvariantCulture); +#pragma warning restore CS0618 // Type or member is obsolete +#endif } } diff --git a/Xamarin.Essentials/Permissions/Permissions.macos.cs b/Xamarin.Essentials/Permissions/Permissions.macos.cs index 05e6b42df..8c05cef6c 100644 --- a/Xamarin.Essentials/Permissions/Permissions.macos.cs +++ b/Xamarin.Essentials/Permissions/Permissions.macos.cs @@ -25,6 +25,8 @@ public override Task CheckStatusAsync() => public override Task RequestAsync() => Task.FromResult(PermissionStatus.Granted); + public override bool ShouldShowRationale() => false; + public override void EnsureDeclared() { var plistKeys = RequiredInfoPlistKeys?.Invoke(); diff --git a/Xamarin.Essentials/Platform/Platform.android.cs b/Xamarin.Essentials/Platform/Platform.android.cs index 7a1e830de..df389c224 100644 --- a/Xamarin.Essentials/Platform/Platform.android.cs +++ b/Xamarin.Essentials/Platform/Platform.android.cs @@ -221,7 +221,9 @@ internal static Java.Util.Locale GetLocale() return config.Locales.Get(0); #endif +#pragma warning disable CS0618 // Type or member is obsolete return config.Locale; +#pragma warning restore CS0618 // Type or member is obsolete } internal static void SetLocale(Java.Util.Locale locale) @@ -231,9 +233,15 @@ internal static void SetLocale(Java.Util.Locale locale) var config = resources.Configuration; if (HasApiLevelN) + { config.SetLocale(locale); + } else + { +#pragma warning disable CS0618 // Type or member is obsolete config.Locale = locale; +#pragma warning restore CS0618 // Type or member is obsolete + } #pragma warning disable CS0618 // Type or member is obsolete resources.UpdateConfiguration(config, resources.DisplayMetrics);