From 6d87383e8d3b6684b878bdb2b9116cd9f274dbe0 Mon Sep 17 00:00:00 2001 From: ARIYAMA Keiji Date: Thu, 10 Jun 2021 00:59:44 +0900 Subject: [PATCH] Fix mismatched that ExposureInformation.AttenuationDuration unit --- Chino.Android/ExposureInformation.cs | 6 +++++- Chino.Common/IExposureInformation.cs | 4 ++-- Chino.iOS/ExposureInformation.cs | 6 +++++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Chino.Android/ExposureInformation.cs b/Chino.Android/ExposureInformation.cs index b3191d1..ddad97d 100644 --- a/Chino.Android/ExposureInformation.cs +++ b/Chino.Android/ExposureInformation.cs @@ -1,4 +1,5 @@ using System; +using System.Linq; using Newtonsoft.Json; using AndroidExposureInformation = Android.Gms.Nearby.ExposureNotification.ExposureInformation; @@ -16,7 +17,7 @@ public ExposureInformation(AndroidExposureInformation source) Source = source; } - public int[] AttenuationDurationsInMinutes => Source.GetAttenuationDurationsInMinutes(); + public int[] AttenuationDurationsInMillis => ConvertToMillis(Source.GetAttenuationDurationsInMinutes()); public int AttenuationValue => Source.AttenuationValue; @@ -27,5 +28,8 @@ public ExposureInformation(AndroidExposureInformation source) public int TotalRiskScore => Source.TotalRiskScore; public RiskLevel TransmissionRiskLevel => (RiskLevel)Enum.ToObject(typeof(RiskLevel), Source.TransmissionRiskLevel); + + private static int[] ConvertToMillis(int[] attenuationDurationsInMinutes) + => attenuationDurationsInMinutes.Select(d => d * 60 * 1000).ToArray(); } } diff --git a/Chino.Common/IExposureInformation.cs b/Chino.Common/IExposureInformation.cs index 5446c6e..4de0047 100644 --- a/Chino.Common/IExposureInformation.cs +++ b/Chino.Common/IExposureInformation.cs @@ -11,9 +11,9 @@ public interface IExposureInformation { /// - /// Array of durations in minutes at certain radio signal attenuations. + /// Array of durations in milliseconds at certain radio signal attenuations. /// - public int[] AttenuationDurationsInMinutes { get; } + public int[] AttenuationDurationsInMillis { get; } /// /// The time-weighted signal strength attenuation value which goes into getTotalRiskScore(). diff --git a/Chino.iOS/ExposureInformation.cs b/Chino.iOS/ExposureInformation.cs index 27368b0..a03a923 100644 --- a/Chino.iOS/ExposureInformation.cs +++ b/Chino.iOS/ExposureInformation.cs @@ -1,4 +1,5 @@ using System; +using System.Linq; using ExposureNotifications; using Newtonsoft.Json; @@ -15,7 +16,7 @@ public ExposureInformation(ENExposureInfo source) Source = source; } - public int[] AttenuationDurationsInMinutes => Source.AttenuationDurations; + public int[] AttenuationDurationsInMillis => ConvertToMillis(Source.AttenuationDurations); public int AttenuationValue => Source.AttenuationValue; @@ -26,5 +27,8 @@ public ExposureInformation(ENExposureInfo source) public int TotalRiskScore => Source.TotalRiskScore; public RiskLevel TransmissionRiskLevel => (RiskLevel)Enum.ToObject(typeof(RiskLevel), Source.TransmissionRiskLevel); + + private static int[] ConvertToMillis(int[] attenuationDurations) + => attenuationDurations.Select(d => d * 1000).ToArray(); } }