public DeviceInformationHelper()
 {
     _screenSizeProvider = _screenSizeProviderFactory.CreateScreenSizeProvider();
     _screenSizeProvider.ScreenSizeChanged += (sender, e) =>
     {
         InformationInvalidated?.Invoke(sender, e);
     };
 }
 //NOTE: This method MUST be called from the UI thread
 public static void RefreshDisplayCache()
 {
     lock (LockObject)
     {
         DisplayInformation displayInfo = null;
         try
         {
             // This can throw exceptions that aren't well documented, so catch-all and ignore
             displayInfo = DisplayInformation.GetForCurrentView();
         }
         catch (Exception e)
         {
             MobileCenterLog.Warn(MobileCenterLog.LogTag, "Could not get display information.", e);
             return;
         }
         if (_cachedScreenSize == ScreenSizeFromDisplayInfo(displayInfo))
         {
             return;
         }
         _cachedScreenSize = ScreenSizeFromDisplayInfo(displayInfo);
         MobileCenterLog.Debug(MobileCenterLog.LogTag, $"Cached screen size updated to {_cachedScreenSize}");
         InformationInvalidated?.Invoke(null, EventArgs.Empty);
     }
 }
 protected static void InvalidateInformation(object sender, EventArgs e)
 {
     InformationInvalidated?.Invoke(sender, e);
 }
 internal static void SetCountryCode(string country)
 {
     _country = country;
     InformationInvalidated?.Invoke(null, EventArgs.Empty);
 }