예제 #1
0
        private async Task UpdateView()
        {
            loggerService.StartMethod();

            var daysOfUse = _userDataRepository.GetDaysOfUse();

            PastDate = daysOfUse.ToString();

            var statusCodes = await exposureNotificationApiService.GetStatusCodesAsync();

            var isStopped =
                statusCodes.Contains(ExposureNotificationStatus.Code_Android.INACTIVATED) ||
                statusCodes.Contains(ExposureNotificationStatus.Code_Android.FOCUS_LOST) ||
                statusCodes.Contains(ExposureNotificationStatus.Code_iOS.Disabled) ||
                statusCodes.Contains(ExposureNotificationStatus.Code_iOS.Unauthorized) ||
                statusCodes.Contains(ExposureNotificationStatus.Code_Android.BLUETOOTH_DISABLED) ||
                statusCodes.Contains(ExposureNotificationStatus.Code_iOS.BluetoothOff) ||
                statusCodes.Contains(ExposureNotificationStatus.Code_Android.LOCATION_DISABLED);
            var canConfirmExposure = _userDataRepository.IsCanConfirmExposure();

            if (isStopped)
            {
                loggerService.Info("isStopped");
                IsVisibleENStatusActiveLayout      = false;
                IsVisibleENStatusUnconfirmedLayout = false;
                IsVisibleENStatusStoppedLayout     = true;
            }
            else if (!canConfirmExposure)
            {
                loggerService.Info("canConfirmExposure is false");
                IsVisibleENStatusActiveLayout      = false;
                IsVisibleENStatusUnconfirmedLayout = true;
                IsVisibleENStatusStoppedLayout     = false;

                var isMaxPerDayExposureDetectionAPILimitReached = _userDataRepository.IsMaxPerDayExposureDetectionAPILimitReached();
                EnStatusUnconfirmedDescription1 = isMaxPerDayExposureDetectionAPILimitReached
                    ? AppResources.HomePageExposureDetectionAPILimitReachedDescription1 : AppResources.HomePageENStatusUnconfirmedDescription1;
                EnStatusUnconfirmedDescription2 = isMaxPerDayExposureDetectionAPILimitReached
                    ? AppResources.HomePageExposureDetectionAPILimitReachedDescription2 : AppResources.HomePageENStatusUnconfirmedDescription2;
                IsVisibleUnconfirmedTroubleshootingButton = !isMaxPerDayExposureDetectionAPILimitReached;
            }
            else
            {
                IsVisibleENStatusActiveLayout      = true;
                IsVisibleENStatusUnconfirmedLayout = false;
                IsVisibleENStatusStoppedLayout     = false;

                var latestUtcDate = _userDataRepository.GetLastConfirmedDate();
                if (latestUtcDate == null)
                {
                    LatestConfirmationDate = AppResources.InProgressText;
                }
                else
                {
                    try
                    {
                        var latestLocalDate = latestUtcDate.Value.ToLocalTime();
                        LatestConfirmationDate = latestLocalDate.ToString(AppResources.DateTimeFormatToDisplayOnHomePage);
                    }
                    catch (FormatException ex)
                    {
                        loggerService.Exception("Failed to conversion utc date time", ex);
                    }
                }
            }

            IsVisibleLocalNotificationOffWarningLayout = await localNotificationService.IsWarnedLocalNotificationOffAsync();

            loggerService.EndMethod();
        }