GH-197: Moving screen metrics to a new API class (#199)

* Moving screen metrics to a new API class #197

* Added more keywords to the sample
This commit is contained in:
Matthew Leibowitz 2018-04-24 20:27:27 +02:00 коммит произвёл James Montemagno
Родитель 5a608d85b9
Коммит c6c0f79e10
21 изменённых файлов: 469 добавлений и 391 удалений

Просмотреть файл

@ -71,7 +71,7 @@ namespace DeviceTests
{ {
return Utils.OnMainThread(() => return Utils.OnMainThread(() =>
{ {
var metrics = DeviceInfo.ScreenMetrics; var metrics = DeviceDisplay.ScreenMetrics;
Assert.True(metrics.Width > 0); Assert.True(metrics.Width > 0);
Assert.True(metrics.Height > 0); Assert.True(metrics.Height > 0);

Просмотреть файл

@ -30,13 +30,13 @@ namespace Samples.ViewModel
{ {
base.OnAppearing(); base.OnAppearing();
DeviceInfo.ScreenMetricsChanaged += OnScreenMetricsChanged; DeviceDisplay.ScreenMetricsChanaged += OnScreenMetricsChanged;
ScreenMetrics = DeviceInfo.ScreenMetrics; ScreenMetrics = DeviceDisplay.ScreenMetrics;
} }
public override void OnDisappearing() public override void OnDisappearing()
{ {
DeviceInfo.ScreenMetricsChanaged -= OnScreenMetricsChanged; DeviceDisplay.ScreenMetricsChanaged -= OnScreenMetricsChanged;
base.OnDisappearing(); base.OnDisappearing();
} }

Просмотреть файл

@ -77,7 +77,7 @@ namespace Samples.ViewModel
"Device Info", "Device Info",
typeof(DeviceInfoPage), typeof(DeviceInfoPage),
"Find out about the device with ease.", "Find out about the device with ease.",
new[] { "hardware", "device", "info" }), new[] { "hardware", "device", "info", "screen", "display", "orientation", "rotation" }),
new SampleItem( new SampleItem(
"📧", "📧",
"Email", "Email",

Просмотреть файл

@ -0,0 +1,107 @@
using System;
using Android.App;
using Android.Content;
using Android.Content.Res;
using Android.OS;
using Android.Provider;
using Android.Runtime;
using Android.Views;
namespace Xamarin.Essentials
{
public static partial class DeviceDisplay
{
static OrientationEventListener orientationListener;
static ScreenMetrics GetScreenMetrics()
{
var displayMetrics = Essentials.Platform.CurrentContext.Resources?.DisplayMetrics;
return new ScreenMetrics
{
Orientation = CalculateOrientation(),
Rotation = CalculateRotation(),
Width = displayMetrics?.WidthPixels ?? 0,
Height = displayMetrics?.HeightPixels ?? 0,
Density = displayMetrics?.Density ?? 0
};
}
static void StartScreenMetricsListeners()
{
orientationListener = new Listener(Application.Context, OnScreenMetricsChanaged);
orientationListener.Enable();
}
static void StopScreenMetricsListeners()
{
orientationListener?.Disable();
orientationListener?.Dispose();
orientationListener = null;
}
static void OnScreenMetricsChanaged()
{
var metrics = GetScreenMetrics();
OnScreenMetricsChanaged(metrics);
}
static ScreenRotation CalculateRotation()
{
var service = Essentials.Platform.CurrentContext.GetSystemService(Context.WindowService);
var display = service?.JavaCast<IWindowManager>()?.DefaultDisplay;
if (display != null)
{
switch (display.Rotation)
{
case SurfaceOrientation.Rotation270:
return ScreenRotation.Rotation270;
case SurfaceOrientation.Rotation180:
return ScreenRotation.Rotation180;
case SurfaceOrientation.Rotation90:
return ScreenRotation.Rotation90;
case SurfaceOrientation.Rotation0:
return ScreenRotation.Rotation0;
}
}
return ScreenRotation.Rotation0;
}
static ScreenOrientation CalculateOrientation()
{
var config = Essentials.Platform.CurrentContext.Resources?.Configuration;
if (config != null)
{
switch (config.Orientation)
{
case Orientation.Landscape:
return ScreenOrientation.Landscape;
case Orientation.Portrait:
case Orientation.Square:
return ScreenOrientation.Portrait;
}
}
return ScreenOrientation.Unknown;
}
static string GetSystemSetting(string name)
=> Settings.System.GetString(Essentials.Platform.CurrentContext.ContentResolver, name);
}
class Listener : OrientationEventListener
{
Action onChanged;
public Listener(Context context, Action handler)
: base(context)
{
onChanged = handler;
}
public override void OnOrientationChanged(int orientation) => onChanged();
}
}

Просмотреть файл

@ -0,0 +1,74 @@
using Foundation;
using ObjCRuntime;
using UIKit;
namespace Xamarin.Essentials
{
public static partial class DeviceDisplay
{
static NSObject observer;
static ScreenMetrics GetScreenMetrics()
{
var bounds = UIScreen.MainScreen.Bounds;
var scale = UIScreen.MainScreen.Scale;
return new ScreenMetrics
{
Width = bounds.Width * scale,
Height = bounds.Height * scale,
Density = scale,
Orientation = CalculateOrientation(),
Rotation = CalculateRotation()
};
}
static void StartScreenMetricsListeners()
{
var notificationCenter = NSNotificationCenter.DefaultCenter;
var notification = UIApplication.DidChangeStatusBarOrientationNotification;
observer = notificationCenter.AddObserver(notification, OnScreenMetricsChanaged);
}
static void StopScreenMetricsListeners()
{
observer?.Dispose();
observer = null;
}
static void OnScreenMetricsChanaged(NSNotification obj)
{
var metrics = GetScreenMetrics();
OnScreenMetricsChanaged(metrics);
}
static ScreenOrientation CalculateOrientation()
{
var orientation = UIApplication.SharedApplication.StatusBarOrientation;
if (orientation.IsLandscape())
return ScreenOrientation.Landscape;
return ScreenOrientation.Portrait;
}
static ScreenRotation CalculateRotation()
{
var orientation = UIApplication.SharedApplication.StatusBarOrientation;
switch (orientation)
{
case UIInterfaceOrientation.Portrait:
return ScreenRotation.Rotation0;
case UIInterfaceOrientation.PortraitUpsideDown:
return ScreenRotation.Rotation180;
case UIInterfaceOrientation.LandscapeLeft:
return ScreenRotation.Rotation270;
case UIInterfaceOrientation.LandscapeRight:
return ScreenRotation.Rotation90;
}
return ScreenRotation.Rotation0;
}
}
}

Просмотреть файл

@ -0,0 +1,11 @@
namespace Xamarin.Essentials
{
public static partial class DeviceDisplay
{
static ScreenMetrics GetScreenMetrics() => throw new NotImplementedInReferenceAssemblyException();
static void StartScreenMetricsListeners() => throw new NotImplementedInReferenceAssemblyException();
static void StopScreenMetricsListeners() => throw new NotImplementedInReferenceAssemblyException();
}
}

Просмотреть файл

@ -0,0 +1,91 @@
using System;
namespace Xamarin.Essentials
{
public static partial class DeviceDisplay
{
static event ScreenMetricsChanagedEventHandler ScreenMetricsChanagedInternal;
public static ScreenMetrics ScreenMetrics => GetScreenMetrics();
public static event ScreenMetricsChanagedEventHandler ScreenMetricsChanaged
{
add
{
var wasRunning = ScreenMetricsChanagedInternal != null;
ScreenMetricsChanagedInternal += value;
if (!wasRunning && ScreenMetricsChanagedInternal != null)
StartScreenMetricsListeners();
}
remove
{
var wasRunning = ScreenMetricsChanagedInternal != null;
ScreenMetricsChanagedInternal -= value;
if (wasRunning && ScreenMetricsChanagedInternal == null)
StopScreenMetricsListeners();
}
}
static void OnScreenMetricsChanaged(ScreenMetrics metrics)
=> OnScreenMetricsChanaged(new ScreenMetricsChanagedEventArgs(metrics));
static void OnScreenMetricsChanaged(ScreenMetricsChanagedEventArgs e)
=> ScreenMetricsChanagedInternal?.Invoke(e);
}
public delegate void ScreenMetricsChanagedEventHandler(ScreenMetricsChanagedEventArgs e);
public class ScreenMetricsChanagedEventArgs : EventArgs
{
public ScreenMetricsChanagedEventArgs(ScreenMetrics metrics)
{
Metrics = metrics;
}
public ScreenMetrics Metrics { get; }
}
[Preserve(AllMembers = true)]
public struct ScreenMetrics
{
internal ScreenMetrics(double width, double height, double density, ScreenOrientation orientation, ScreenRotation rotation)
{
Width = width;
Height = height;
Density = density;
Orientation = orientation;
Rotation = rotation;
}
public double Width { get; set; }
public double Height { get; set; }
public double Density { get; set; }
public ScreenOrientation Orientation { get; set; }
public ScreenRotation Rotation { get; set; }
}
public enum ScreenOrientation
{
Unknown,
Portrait,
Landscape
}
public enum ScreenRotation
{
Rotation0,
Rotation90,
Rotation180,
Rotation270
}
}

Просмотреть файл

@ -0,0 +1,104 @@
using Windows.Graphics.Display;
using Windows.Security.ExchangeActiveSyncProvisioning;
using Windows.System.Profile;
using Windows.UI.ViewManagement;
namespace Xamarin.Essentials
{
public static partial class DeviceDisplay
{
static ScreenMetrics GetScreenMetrics(DisplayInformation di = null)
{
di = di ?? DisplayInformation.GetForCurrentView();
var rotation = CalculateRotation(di);
var perpendicular =
rotation == ScreenRotation.Rotation90 ||
rotation == ScreenRotation.Rotation270;
var w = di.ScreenWidthInRawPixels;
var h = di.ScreenHeightInRawPixels;
return new ScreenMetrics
{
Width = perpendicular ? h : w,
Height = perpendicular ? w : h,
Density = di.LogicalDpi / 96.0,
Orientation = CalculateOrientation(di),
Rotation = rotation
};
}
static void StartScreenMetricsListeners()
{
Xamarin.Essentials.Platform.BeginInvokeOnMainThread(() =>
{
var di = DisplayInformation.GetForCurrentView();
di.DpiChanged += OnDisplayInformationChanged;
di.OrientationChanged += OnDisplayInformationChanged;
});
}
static void StopScreenMetricsListeners()
{
Xamarin.Essentials.Platform.BeginInvokeOnMainThread(() =>
{
var di = DisplayInformation.GetForCurrentView();
di.DpiChanged -= OnDisplayInformationChanged;
di.OrientationChanged -= OnDisplayInformationChanged;
});
}
static void OnDisplayInformationChanged(DisplayInformation di, object args)
{
var metrics = GetScreenMetrics(di);
OnScreenMetricsChanaged(metrics);
}
static ScreenOrientation CalculateOrientation(DisplayInformation di)
{
switch (di.CurrentOrientation)
{
case DisplayOrientations.Landscape:
case DisplayOrientations.LandscapeFlipped:
return ScreenOrientation.Landscape;
case DisplayOrientations.Portrait:
case DisplayOrientations.PortraitFlipped:
return ScreenOrientation.Portrait;
}
return ScreenOrientation.Unknown;
}
static ScreenRotation CalculateRotation(DisplayInformation di)
{
var native = di.NativeOrientation;
var current = di.CurrentOrientation;
if (native == DisplayOrientations.Portrait)
{
switch (current)
{
case DisplayOrientations.Landscape: return ScreenRotation.Rotation90;
case DisplayOrientations.Portrait: return ScreenRotation.Rotation0;
case DisplayOrientations.LandscapeFlipped: return ScreenRotation.Rotation270;
case DisplayOrientations.PortraitFlipped: return ScreenRotation.Rotation180;
}
}
else if (native == DisplayOrientations.Landscape)
{
switch (current)
{
case DisplayOrientations.Landscape: return ScreenRotation.Rotation0;
case DisplayOrientations.Portrait: return ScreenRotation.Rotation270;
case DisplayOrientations.LandscapeFlipped: return ScreenRotation.Rotation180;
case DisplayOrientations.PortraitFlipped: return ScreenRotation.Rotation90;
}
}
return ScreenRotation.Rotation0;
}
}
}

Просмотреть файл

@ -13,8 +13,6 @@ namespace Xamarin.Essentials
{ {
const int tabletCrossover = 600; const int tabletCrossover = 600;
static OrientationEventListener orientationListener;
static string GetModel() => Build.Model; static string GetModel() => Build.Model;
static string GetManufacturer() => Build.Manufacturer; static string GetManufacturer() => Build.Manufacturer;
@ -107,95 +105,7 @@ namespace Xamarin.Essentials
return DeviceType.Physical; return DeviceType.Physical;
} }
static ScreenMetrics GetScreenMetrics()
{
var displayMetrics = Essentials.Platform.CurrentContext.Resources?.DisplayMetrics;
return new ScreenMetrics
{
Orientation = CalculateOrientation(),
Rotation = CalculateRotation(),
Width = displayMetrics?.WidthPixels ?? 0,
Height = displayMetrics?.HeightPixels ?? 0,
Density = displayMetrics?.Density ?? 0
};
}
static void StartScreenMetricsListeners()
{
orientationListener = new Listener(Application.Context, OnScreenMetricsChanaged);
orientationListener.Enable();
}
static void StopScreenMetricsListeners()
{
orientationListener?.Disable();
orientationListener?.Dispose();
orientationListener = null;
}
static void OnScreenMetricsChanaged()
{
var metrics = GetScreenMetrics();
OnScreenMetricsChanaged(metrics);
}
static ScreenRotation CalculateRotation()
{
var service = Essentials.Platform.CurrentContext.GetSystemService(Context.WindowService);
var display = service?.JavaCast<IWindowManager>()?.DefaultDisplay;
if (display != null)
{
switch (display.Rotation)
{
case SurfaceOrientation.Rotation270:
return ScreenRotation.Rotation270;
case SurfaceOrientation.Rotation180:
return ScreenRotation.Rotation180;
case SurfaceOrientation.Rotation90:
return ScreenRotation.Rotation90;
case SurfaceOrientation.Rotation0:
return ScreenRotation.Rotation0;
}
}
return ScreenRotation.Rotation0;
}
static ScreenOrientation CalculateOrientation()
{
var config = Essentials.Platform.CurrentContext.Resources?.Configuration;
if (config != null)
{
switch (config.Orientation)
{
case Orientation.Landscape:
return ScreenOrientation.Landscape;
case Orientation.Portrait:
case Orientation.Square:
return ScreenOrientation.Portrait;
}
}
return ScreenOrientation.Unknown;
}
static string GetSystemSetting(string name) static string GetSystemSetting(string name)
=> Settings.System.GetString(Essentials.Platform.CurrentContext.ContentResolver, name); => Settings.System.GetString(Essentials.Platform.CurrentContext.ContentResolver, name);
} }
class Listener : OrientationEventListener
{
Action onChanged;
public Listener(Context context, Action handler)
: base(context)
{
onChanged = handler;
}
public override void OnOrientationChanged(int orientation) => onChanged();
}
} }

Просмотреть файл

@ -6,8 +6,6 @@ namespace Xamarin.Essentials
{ {
public static partial class DeviceInfo public static partial class DeviceInfo
{ {
static NSObject observer;
static string GetModel() => UIDevice.CurrentDevice.Model; static string GetModel() => UIDevice.CurrentDevice.Model;
static string GetManufacturer() => "Apple"; static string GetManufacturer() => "Apple";
@ -37,68 +35,5 @@ namespace Xamarin.Essentials
static DeviceType GetDeviceType() static DeviceType GetDeviceType()
=> Runtime.Arch == Arch.DEVICE ? DeviceType.Physical : DeviceType.Virtual; => Runtime.Arch == Arch.DEVICE ? DeviceType.Physical : DeviceType.Virtual;
static ScreenMetrics GetScreenMetrics()
{
var bounds = UIScreen.MainScreen.Bounds;
var scale = UIScreen.MainScreen.Scale;
return new ScreenMetrics
{
Width = bounds.Width * scale,
Height = bounds.Height * scale,
Density = scale,
Orientation = CalculateOrientation(),
Rotation = CalculateRotation()
};
}
static void StartScreenMetricsListeners()
{
var notificationCenter = NSNotificationCenter.DefaultCenter;
var notification = UIApplication.DidChangeStatusBarOrientationNotification;
observer = notificationCenter.AddObserver(notification, OnScreenMetricsChanaged);
}
static void StopScreenMetricsListeners()
{
observer?.Dispose();
observer = null;
}
static void OnScreenMetricsChanaged(NSNotification obj)
{
var metrics = GetScreenMetrics();
OnScreenMetricsChanaged(metrics);
}
static ScreenOrientation CalculateOrientation()
{
var orientation = UIApplication.SharedApplication.StatusBarOrientation;
if (orientation.IsLandscape())
return ScreenOrientation.Landscape;
return ScreenOrientation.Portrait;
}
static ScreenRotation CalculateRotation()
{
var orientation = UIApplication.SharedApplication.StatusBarOrientation;
switch (orientation)
{
case UIInterfaceOrientation.Portrait:
return ScreenRotation.Rotation0;
case UIInterfaceOrientation.PortraitUpsideDown:
return ScreenRotation.Rotation180;
case UIInterfaceOrientation.LandscapeLeft:
return ScreenRotation.Rotation270;
case UIInterfaceOrientation.LandscapeRight:
return ScreenRotation.Rotation90;
}
return ScreenRotation.Rotation0;
}
} }
} }

Просмотреть файл

@ -15,11 +15,5 @@
static string GetIdiom() => throw new NotImplementedInReferenceAssemblyException(); static string GetIdiom() => throw new NotImplementedInReferenceAssemblyException();
static DeviceType GetDeviceType() => throw new NotImplementedInReferenceAssemblyException(); static DeviceType GetDeviceType() => throw new NotImplementedInReferenceAssemblyException();
static ScreenMetrics GetScreenMetrics() => throw new NotImplementedInReferenceAssemblyException();
static void StartScreenMetricsListeners() => throw new NotImplementedInReferenceAssemblyException();
static void StopScreenMetricsListeners() => throw new NotImplementedInReferenceAssemblyException();
} }
} }

Просмотреть файл

@ -4,8 +4,6 @@ namespace Xamarin.Essentials
{ {
public static partial class DeviceInfo public static partial class DeviceInfo
{ {
static event ScreenMetricsChanagedEventHandler ScreenMetricsChanagedInternal;
public static string Model => GetModel(); public static string Model => GetModel();
public static string Manufacturer => GetManufacturer(); public static string Manufacturer => GetManufacturer();
@ -22,37 +20,6 @@ namespace Xamarin.Essentials
public static DeviceType DeviceType => GetDeviceType(); public static DeviceType DeviceType => GetDeviceType();
public static ScreenMetrics ScreenMetrics => GetScreenMetrics();
public static event ScreenMetricsChanagedEventHandler ScreenMetricsChanaged
{
add
{
var wasRunning = ScreenMetricsChanagedInternal != null;
ScreenMetricsChanagedInternal += value;
if (!wasRunning && ScreenMetricsChanagedInternal != null)
StartScreenMetricsListeners();
}
remove
{
var wasRunning = ScreenMetricsChanagedInternal != null;
ScreenMetricsChanagedInternal -= value;
if (wasRunning && ScreenMetricsChanagedInternal == null)
StopScreenMetricsListeners();
}
}
static void OnScreenMetricsChanaged(ScreenMetrics metrics)
=> OnScreenMetricsChanaged(new ScreenMetricsChanagedEventArgs(metrics));
static void OnScreenMetricsChanaged(ScreenMetricsChanagedEventArgs e)
=> ScreenMetricsChanagedInternal?.Invoke(e);
public static class Idioms public static class Idioms
{ {
// try to match Xamarin.Forms: // try to match Xamarin.Forms:
@ -79,60 +46,9 @@ namespace Xamarin.Essentials
} }
} }
public delegate void ScreenMetricsChanagedEventHandler(ScreenMetricsChanagedEventArgs e);
public class ScreenMetricsChanagedEventArgs : EventArgs
{
public ScreenMetricsChanagedEventArgs(ScreenMetrics metrics)
{
Metrics = metrics;
}
public ScreenMetrics Metrics { get; }
}
public enum DeviceType public enum DeviceType
{ {
Physical, Physical,
Virtual Virtual
} }
[Preserve(AllMembers = true)]
public struct ScreenMetrics
{
internal ScreenMetrics(double width, double height, double density, ScreenOrientation orientation, ScreenRotation rotation)
{
Width = width;
Height = height;
Density = density;
Orientation = orientation;
Rotation = rotation;
}
public double Width { get; set; }
public double Height { get; set; }
public double Density { get; set; }
public ScreenOrientation Orientation { get; set; }
public ScreenRotation Rotation { get; set; }
}
public enum ScreenOrientation
{
Unknown,
Portrait,
Landscape
}
public enum ScreenRotation
{
Rotation0,
Rotation90,
Rotation180,
Rotation270
}
} }

Просмотреть файл

@ -69,99 +69,5 @@ namespace Xamarin.Essentials
return DeviceType.Physical; return DeviceType.Physical;
} }
static ScreenMetrics GetScreenMetrics(DisplayInformation di = null)
{
di = di ?? DisplayInformation.GetForCurrentView();
var rotation = CalculateRotation(di);
var perpendicular =
rotation == ScreenRotation.Rotation90 ||
rotation == ScreenRotation.Rotation270;
var w = di.ScreenWidthInRawPixels;
var h = di.ScreenHeightInRawPixels;
return new ScreenMetrics
{
Width = perpendicular ? h : w,
Height = perpendicular ? w : h,
Density = di.LogicalDpi / 96.0,
Orientation = CalculateOrientation(di),
Rotation = rotation
};
}
static void StartScreenMetricsListeners()
{
Xamarin.Essentials.Platform.BeginInvokeOnMainThread(() =>
{
var di = DisplayInformation.GetForCurrentView();
di.DpiChanged += OnDisplayInformationChanged;
di.OrientationChanged += OnDisplayInformationChanged;
});
}
static void StopScreenMetricsListeners()
{
Xamarin.Essentials.Platform.BeginInvokeOnMainThread(() =>
{
var di = DisplayInformation.GetForCurrentView();
di.DpiChanged -= OnDisplayInformationChanged;
di.OrientationChanged -= OnDisplayInformationChanged;
});
}
static void OnDisplayInformationChanged(DisplayInformation di, object args)
{
var metrics = GetScreenMetrics(di);
OnScreenMetricsChanaged(metrics);
}
static ScreenOrientation CalculateOrientation(DisplayInformation di)
{
switch (di.CurrentOrientation)
{
case DisplayOrientations.Landscape:
case DisplayOrientations.LandscapeFlipped:
return ScreenOrientation.Landscape;
case DisplayOrientations.Portrait:
case DisplayOrientations.PortraitFlipped:
return ScreenOrientation.Portrait;
}
return ScreenOrientation.Unknown;
}
static ScreenRotation CalculateRotation(DisplayInformation di)
{
var native = di.NativeOrientation;
var current = di.CurrentOrientation;
if (native == DisplayOrientations.Portrait)
{
switch (current)
{
case DisplayOrientations.Landscape: return ScreenRotation.Rotation90;
case DisplayOrientations.Portrait: return ScreenRotation.Rotation0;
case DisplayOrientations.LandscapeFlipped: return ScreenRotation.Rotation270;
case DisplayOrientations.PortraitFlipped: return ScreenRotation.Rotation180;
}
}
else if (native == DisplayOrientations.Landscape)
{
switch (current)
{
case DisplayOrientations.Landscape: return ScreenRotation.Rotation0;
case DisplayOrientations.Portrait: return ScreenRotation.Rotation270;
case DisplayOrientations.LandscapeFlipped: return ScreenRotation.Rotation180;
case DisplayOrientations.PortraitFlipped: return ScreenRotation.Rotation90;
}
}
return ScreenRotation.Rotation0;
}
} }
} }

Просмотреть файл

@ -40,7 +40,7 @@
<DebugType>pdbonly</DebugType> <DebugType>pdbonly</DebugType>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="mdoc" Version="5.6.3" PrivateAssets="All" /> <PackageReference Include="mdoc" Version="5.6.4" PrivateAssets="All" />
<PackageReference Include="MSBuild.Sdk.Extras" Version="1.2.2" PrivateAssets="All" /> <PackageReference Include="MSBuild.Sdk.Extras" Version="1.2.2" PrivateAssets="All" />
<Compile Include="**\*.shared.cs" /> <Compile Include="**\*.shared.cs" />
<Compile Include="**\*.shared.*.cs" /> <Compile Include="**\*.shared.*.cs" />

Просмотреть файл

@ -100,15 +100,17 @@
<Member Id="M:Xamarin.Essentials.DataTransfer.RequestAsync(System.String,System.String)" /> <Member Id="M:Xamarin.Essentials.DataTransfer.RequestAsync(System.String,System.String)" />
<Member Id="M:Xamarin.Essentials.DataTransfer.RequestAsync(Xamarin.Essentials.ShareTextRequest)" /> <Member Id="M:Xamarin.Essentials.DataTransfer.RequestAsync(Xamarin.Essentials.ShareTextRequest)" />
</Type> </Type>
<Type Name="Xamarin.Essentials.DeviceDisplay" Id="T:Xamarin.Essentials.DeviceDisplay">
<Member Id="E:Xamarin.Essentials.DeviceDisplay.ScreenMetricsChanaged" />
<Member Id="P:Xamarin.Essentials.DeviceDisplay.ScreenMetrics" />
</Type>
<Type Name="Xamarin.Essentials.DeviceInfo" Id="T:Xamarin.Essentials.DeviceInfo"> <Type Name="Xamarin.Essentials.DeviceInfo" Id="T:Xamarin.Essentials.DeviceInfo">
<Member Id="E:Xamarin.Essentials.DeviceInfo.ScreenMetricsChanaged" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.DeviceType" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.DeviceType" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Idiom" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Idiom" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Manufacturer" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Manufacturer" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Model" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Model" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Name" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Name" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Platform" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Platform" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.ScreenMetrics" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Version" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Version" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.VersionString" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.VersionString" />
</Type> </Type>

Просмотреть файл

@ -100,15 +100,17 @@
<Member Id="M:Xamarin.Essentials.DataTransfer.RequestAsync(System.String,System.String)" /> <Member Id="M:Xamarin.Essentials.DataTransfer.RequestAsync(System.String,System.String)" />
<Member Id="M:Xamarin.Essentials.DataTransfer.RequestAsync(Xamarin.Essentials.ShareTextRequest)" /> <Member Id="M:Xamarin.Essentials.DataTransfer.RequestAsync(Xamarin.Essentials.ShareTextRequest)" />
</Type> </Type>
<Type Name="Xamarin.Essentials.DeviceDisplay" Id="T:Xamarin.Essentials.DeviceDisplay">
<Member Id="E:Xamarin.Essentials.DeviceDisplay.ScreenMetricsChanaged" />
<Member Id="P:Xamarin.Essentials.DeviceDisplay.ScreenMetrics" />
</Type>
<Type Name="Xamarin.Essentials.DeviceInfo" Id="T:Xamarin.Essentials.DeviceInfo"> <Type Name="Xamarin.Essentials.DeviceInfo" Id="T:Xamarin.Essentials.DeviceInfo">
<Member Id="E:Xamarin.Essentials.DeviceInfo.ScreenMetricsChanaged" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.DeviceType" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.DeviceType" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Idiom" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Idiom" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Manufacturer" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Manufacturer" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Model" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Model" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Name" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Name" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Platform" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Platform" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.ScreenMetrics" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Version" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Version" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.VersionString" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.VersionString" />
</Type> </Type>

Просмотреть файл

@ -100,15 +100,17 @@
<Member Id="M:Xamarin.Essentials.DataTransfer.RequestAsync(System.String,System.String)" /> <Member Id="M:Xamarin.Essentials.DataTransfer.RequestAsync(System.String,System.String)" />
<Member Id="M:Xamarin.Essentials.DataTransfer.RequestAsync(Xamarin.Essentials.ShareTextRequest)" /> <Member Id="M:Xamarin.Essentials.DataTransfer.RequestAsync(Xamarin.Essentials.ShareTextRequest)" />
</Type> </Type>
<Type Name="Xamarin.Essentials.DeviceDisplay" Id="T:Xamarin.Essentials.DeviceDisplay">
<Member Id="E:Xamarin.Essentials.DeviceDisplay.ScreenMetricsChanaged" />
<Member Id="P:Xamarin.Essentials.DeviceDisplay.ScreenMetrics" />
</Type>
<Type Name="Xamarin.Essentials.DeviceInfo" Id="T:Xamarin.Essentials.DeviceInfo"> <Type Name="Xamarin.Essentials.DeviceInfo" Id="T:Xamarin.Essentials.DeviceInfo">
<Member Id="E:Xamarin.Essentials.DeviceInfo.ScreenMetricsChanaged" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.DeviceType" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.DeviceType" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Idiom" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Idiom" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Manufacturer" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Manufacturer" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Model" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Model" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Name" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Name" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Platform" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Platform" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.ScreenMetrics" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Version" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Version" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.VersionString" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.VersionString" />
</Type> </Type>

Просмотреть файл

@ -100,15 +100,17 @@
<Member Id="M:Xamarin.Essentials.DataTransfer.RequestAsync(System.String,System.String)" /> <Member Id="M:Xamarin.Essentials.DataTransfer.RequestAsync(System.String,System.String)" />
<Member Id="M:Xamarin.Essentials.DataTransfer.RequestAsync(Xamarin.Essentials.ShareTextRequest)" /> <Member Id="M:Xamarin.Essentials.DataTransfer.RequestAsync(Xamarin.Essentials.ShareTextRequest)" />
</Type> </Type>
<Type Name="Xamarin.Essentials.DeviceDisplay" Id="T:Xamarin.Essentials.DeviceDisplay">
<Member Id="E:Xamarin.Essentials.DeviceDisplay.ScreenMetricsChanaged" />
<Member Id="P:Xamarin.Essentials.DeviceDisplay.ScreenMetrics" />
</Type>
<Type Name="Xamarin.Essentials.DeviceInfo" Id="T:Xamarin.Essentials.DeviceInfo"> <Type Name="Xamarin.Essentials.DeviceInfo" Id="T:Xamarin.Essentials.DeviceInfo">
<Member Id="E:Xamarin.Essentials.DeviceInfo.ScreenMetricsChanaged" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.DeviceType" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.DeviceType" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Idiom" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Idiom" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Manufacturer" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Manufacturer" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Model" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Model" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Name" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Name" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Platform" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Platform" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.ScreenMetrics" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.Version" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.Version" />
<Member Id="P:Xamarin.Essentials.DeviceInfo.VersionString" /> <Member Id="P:Xamarin.Essentials.DeviceInfo.VersionString" />
</Type> </Type>

Просмотреть файл

@ -0,0 +1,58 @@
<Type Name="DeviceDisplay" FullName="Xamarin.Essentials.DeviceDisplay">
<TypeSignature Language="C#" Value="public static class DeviceDisplay" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi abstract sealed beforefieldinit DeviceDisplay extends System.Object" />
<TypeSignature Language="DocId" Value="T:Xamarin.Essentials.DeviceDisplay" />
<AssemblyInfo>
<AssemblyName>Xamarin.Essentials</AssemblyName>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<summary>Represents information about the device screen.</summary>
<remarks>
<para />
</remarks>
</Docs>
<Members>
<Member MemberName="ScreenMetrics">
<MemberSignature Language="C#" Value="public static Xamarin.Essentials.ScreenMetrics ScreenMetrics { get; }" />
<MemberSignature Language="ILAsm" Value=".property valuetype Xamarin.Essentials.ScreenMetrics ScreenMetrics" />
<MemberSignature Language="DocId" Value="P:Xamarin.Essentials.DeviceDisplay.ScreenMetrics" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.Essentials</AssemblyName>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Xamarin.Essentials.ScreenMetrics</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the screen metrics of the device.</summary>
<value>The screen metrics.</value>
<remarks>
<para />
</remarks>
</Docs>
</Member>
<Member MemberName="ScreenMetricsChanaged">
<MemberSignature Language="C#" Value="public static event Xamarin.Essentials.ScreenMetricsChanagedEventHandler ScreenMetricsChanaged;" />
<MemberSignature Language="ILAsm" Value=".event class Xamarin.Essentials.ScreenMetricsChanagedEventHandler ScreenMetricsChanaged" />
<MemberSignature Language="DocId" Value="E:Xamarin.Essentials.DeviceDisplay.ScreenMetricsChanaged" />
<MemberType>Event</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.Essentials</AssemblyName>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Xamarin.Essentials.ScreenMetricsChanagedEventHandler</ReturnType>
</ReturnValue>
<Docs>
<summary>Event that is triggered when the screen matrics change.</summary>
<remarks>Such as screen rotation.</remarks>
</Docs>
</Member>
</Members>
</Type>

Просмотреть файл

@ -11,7 +11,7 @@
</Base> </Base>
<Interfaces /> <Interfaces />
<Docs> <Docs>
<summary>Represents information about the device and application.</summary> <summary>Represents information about the device.</summary>
<remarks> <remarks>
<para /> <para />
</remarks> </remarks>
@ -137,43 +137,6 @@
</remarks> </remarks>
</Docs> </Docs>
</Member> </Member>
<Member MemberName="ScreenMetrics">
<MemberSignature Language="C#" Value="public static Xamarin.Essentials.ScreenMetrics ScreenMetrics { get; }" />
<MemberSignature Language="ILAsm" Value=".property valuetype Xamarin.Essentials.ScreenMetrics ScreenMetrics" />
<MemberSignature Language="DocId" Value="P:Xamarin.Essentials.DeviceInfo.ScreenMetrics" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.Essentials</AssemblyName>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Xamarin.Essentials.ScreenMetrics</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the screen metrics of the device.</summary>
<value>The screen metrics.</value>
<remarks>
<para />
</remarks>
</Docs>
</Member>
<Member MemberName="ScreenMetricsChanaged">
<MemberSignature Language="C#" Value="public static event Xamarin.Essentials.ScreenMetricsChanagedEventHandler ScreenMetricsChanaged;" />
<MemberSignature Language="ILAsm" Value=".event class Xamarin.Essentials.ScreenMetricsChanagedEventHandler ScreenMetricsChanaged" />
<MemberSignature Language="DocId" Value="E:Xamarin.Essentials.DeviceInfo.ScreenMetricsChanaged" />
<MemberType>Event</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.Essentials</AssemblyName>
</AssemblyInfo>
<ReturnValue>
<ReturnType>Xamarin.Essentials.ScreenMetricsChanagedEventHandler</ReturnType>
</ReturnValue>
<Docs>
<summary>Event that is triggered when the screen matrics change.</summary>
<remarks>Such as screen rotation.</remarks>
</Docs>
</Member>
<Member MemberName="Version"> <Member MemberName="Version">
<MemberSignature Language="C#" Value="public static Version Version { get; }" /> <MemberSignature Language="C#" Value="public static Version Version { get; }" />
<MemberSignature Language="ILAsm" Value=".property class System.Version Version" /> <MemberSignature Language="ILAsm" Value=".property class System.Version Version" />

Просмотреть файл

@ -82,6 +82,7 @@
<Type Name="ConnectivityChangedEventArgs" Kind="Class" /> <Type Name="ConnectivityChangedEventArgs" Kind="Class" />
<Type Name="ConnectivityChangedEventHandler" Kind="Delegate" /> <Type Name="ConnectivityChangedEventHandler" Kind="Delegate" />
<Type Name="DataTransfer" Kind="Class" /> <Type Name="DataTransfer" Kind="Class" />
<Type Name="DeviceDisplay" Kind="Class" />
<Type Name="DeviceInfo" Kind="Class" /> <Type Name="DeviceInfo" Kind="Class" />
<Type Name="DeviceInfo+Idioms" Kind="Class" /> <Type Name="DeviceInfo+Idioms" Kind="Class" />
<Type Name="DeviceInfo+Platforms" Kind="Class" /> <Type Name="DeviceInfo+Platforms" Kind="Class" />