Example #1
0
        // <summary>
        /// Executes the blue2 command.
        private async void ExecuteBlue2Command()
        {
            if (IsBusy)
            {
                return;
            }


            if (HaccpAppSettings.SharedInstance.IsWindows)
            {
                WindowsBlue2Command();
                return;
            }


            if (!BLEManager.SharedInstance.Adapter.IsBluetoothEnabled)
            {
                await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice"));

                return;
            }

            if (BLEManager.SharedInstance.ReadingBlue2Data)
            {
                return;
            }

            IsBusy = true;
            Blue2Command.ChangeCanExecute();

            bool gotPermission = await getLocationPermission();

            if (gotPermission)
            {
                BLEManager.SharedInstance.ResetConnection();

                if (!BLEManager.SharedInstance.ScanTimeOutElapsed)
                {
                    ConnectionStatus =
                        HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanning"), false);
                }
                else if (!BLEManager.SharedInstance.IsConnected)
                {
                    ConnectionStatus =
                        HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false);
                }
            }

            IsBusy = false;
            Blue2Command.ChangeCanExecute();
        }
Example #2
0
        /// <summary>
        ///     Searchs the blue2 devices.
        /// </summary>
        public async void LoadBlue2Settings()
        {
            if (BLEManager.SharedInstance.IsConnected)
            {
                ConnectionStatus = HACCPUtil.GetResourceString("ConnectionStatusDisconnect");
                Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style;
            }
            else
            {
                PermissionStatus status = await CrossPermissions.Current.CheckPermissionStatusAsync(Plugin.Permissions.Abstractions.Permission.Location);

                if (status == PermissionStatus.Granted)
                {
                    ConnectionStatus = BLEManager.SharedInstance.ScanTimeOutElapsed
                    ? HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false)
                    : HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanning"), false);
                }
                else
                {
                    ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false);
                    BLEManager.SharedInstance.Adapter.CancelScanning();
                    BLEManager.SharedInstance.ScanTimeOutElapsed = true;
                }

                Blue2ButtonStyle        = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style;
                DisplayBlue2Temperature = HACCPUtil.GetResourceString("ConnectBlue2Label");
                LineBreakMode           = LineBreakMode.TailTruncation;

                if (!BLEManager.SharedInstance.Adapter.IsBluetoothEnabled && !IsManualEntryOn)
                {
                    // bluetooth in phone is disabled
                    await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice"));
                }
                else if (BLEManager.SharedInstance.Adapter.IsScanning && !IsManualEntryOn)
                {
                    // connection to the blue2 device is disabled
                    await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Blue2TurnOnMessage"));
                }
            }
        }
Example #3
0
 private void BindeAllLablelProperties()
 {
     try
     {
         ServerSettingsLabel = HACCPUtil.GetResourceString("ServerSettings");
         DeviceIDLabel       = HACCPUtil.GetResourceString("DeviceID");
         ServerIPAddressorDomainNameLabel =
             HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ServerIPAddressorDomainName"), true);
         EnterPortoptionalLabel                 = HACCPUtil.GetResourceString("EnterPortoptional");
         AddDirectoryPathoptionalLabel          = HACCPUtil.GetResourceString("AddDirectoryPathoptional");
         TestServerConnectionandWebServiceLabel = HACCPUtil.GetResourceString("TestServerConnectionandWebService");
         SaveandContinueLabel   = HACCPUtil.GetResourceString("SaveandContinue");
         SelectLanguageLabel    = HACCPUtil.GetResourceString("SelectLanguage");
         LanguagesLabel         = HACCPUtil.GetResourceString("Languages");
         NotifEYEUrlLabel       = HACCPUtil.GetResourceString("NotifEyeUrl");
         NotifyEYEUsernameLabel = HACCPUtil.GetResourceString("NotifEYEUserName");
         NotifyEYEPasswordLabel = HACCPUtil.GetResourceString("NotifEyeUserPassword");
     }
     catch (Exception)
     {
         // ignored
     }
 }
Example #4
0
        /// <summary>
        ///     Method for loading ble settings for windows
        /// </summary>
        public void LoadWindowsBlue2Settings()
        {
            if (WindowsBLEManager.SharedInstance.HasAnyPairedDevice)
            {
                ConnectionStatus = HACCPUtil.GetResourceString("ConnectionStatusDisconnect");
                Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style;
                if (WindowsBLEManager.SharedInstance.Settings != null)
                {
                    Blue2Id = WindowsBLEManager.SharedInstance.Settings.SNo;
                }


                if (WindowsBLEManager.SharedInstance.Settings != null)
                {
                    var temp = WindowsBLEManager.SharedInstance.LastReading;
                    var unit = WindowsBLEManager.SharedInstance.Settings.Scale;
                    if (TemperatureUnit == TemperatureUnit.Celcius && unit != 0)
                    {
                        temp = HACCPUtil.ConvertFahrenheitToCelsius(temp);
                    }
                    else if (TemperatureUnit == TemperatureUnit.Fahrenheit && unit != 1)
                    {
                        temp = HACCPUtil.ConvertCelsiusToFahrenheit(temp);
                    }

                    DisplayTemperatureReading(temp, false);
                }
            }
            else
            {
                ConnectionStatus =
                    HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false);
                Blue2ButtonStyle        = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style;
                DisplayBlue2Temperature = HACCPUtil.GetResourceString("ConnectBlue2Label");
                LineBreakMode           = LineBreakMode.TailTruncation;
            }
        }
Example #5
0
        /// <summary>
        ///     Loads the blue2 settings.
        /// </summary>
        public async void LoadBlue2Settings()
        {
            if (BLEManager.SharedInstance.IsConnected)
            {
                EnableControls   = true;
                ConnectionStatus = HACCPUtil.GetResourceString("ConnectionStatusDisconnect");
                Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style;
                if (BLEManager.SharedInstance.Settings != null)
                {
                    var settings = BLEManager.SharedInstance.Settings;

                    Blue2Id = settings.SNo;
                    if (!string.IsNullOrEmpty(Blue2Id))
                    {
                        Blue2IdVisible = true;
                    }

                    _measurementTiming = settings.MeasurementLevel;
                    Timing             = string.Format("{0} {1}", _measurementTiming, HACCPUtil.GetResourceString("sec"));

                    IsTimingPlusEnabled = IsTimingMinusEnabled = true;
                    if (_measurementTiming == 5)
                    {
                        IsTimingPlusEnabled = false;
                    }
                    else if (_measurementTiming == 1)
                    {
                        IsTimingMinusEnabled = false;
                    }


                    TemperatureUnit = settings.Scale == 0 ? TemperatureUnit.Celcius : TemperatureUnit.Fahrenheit;


                    _autoOffInterval = settings.AutoOff;
                    Interval         = string.Format("{0} {1}", _autoOffInterval, HACCPUtil.GetResourceString("Minute"));

                    IsIntervalPlusEnabled = IsIntervalMinusEnabled = true;
                    if (_autoOffInterval == 30)
                    {
                        IsIntervalPlusEnabled = false;
                    }
                    else if (_autoOffInterval == 1)
                    {
                        IsIntervalMinusEnabled = false;
                    }

                    _sleepTime = settings.Sleep;
                    Sleep      = string.Format("{0} {1}", _sleepTime, HACCPUtil.GetResourceString("Minute"));

                    IsSleepPlusEnabled = IsSleepMinusEnabled = true;
                    if (_sleepTime == 30)
                    {
                        IsSleepPlusEnabled = false;
                    }
                    else if (_sleepTime == 1)
                    {
                        IsSleepMinusEnabled = false;
                    }

                    CustomProbDescription = settings.Prob;
                    MessagingCenter.Send(new Blue2PlaceHolderVisibility(string.IsNullOrEmpty(CustomProbDescription)),
                                         HaccpConstant.Blue2PlaceholderVisibility);
                }
            }
            else
            {
                EnableControls = false;

                PermissionStatus status = await CrossPermissions.Current.CheckPermissionStatusAsync(Plugin.Permissions.Abstractions.Permission.Location);

                if (status == PermissionStatus.Granted)
                {
                    ConnectionStatus = BLEManager.SharedInstance.ScanTimeOutElapsed
                    ? HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false)
                    : HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanning"), false);
                }
                else
                {
                    ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false);
                    BLEManager.SharedInstance.Adapter.CancelScanning();
                    BLEManager.SharedInstance.ScanTimeOutElapsed = true;
                }

                Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style;
                if (!BLEManager.SharedInstance.Adapter.IsBluetoothEnabled)
                {
                    // bluetooth in phone is disabled

                    CustomProbDescription = string.Empty;
                    MessagingCenter.Send(new Blue2PlaceHolderVisibility(true), HaccpConstant.Blue2PlaceholderVisibility);
                    await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice"));
                }
                else
                {
                    // connection to the blue2 device is disabled
                    Blue2Id        = string.Empty;
                    Blue2IdVisible = false;

                    CustomProbDescription = string.Empty;
                    MessagingCenter.Send(new Blue2PlaceHolderVisibility(true), HaccpConstant.Blue2PlaceholderVisibility);
                    if (BLEManager.SharedInstance.Adapter.IsScanning)
                    {
                        await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Blue2TurnOnMessage"));
                    }
                }
            }
        }
Example #6
0
        /// <summary>
        ///     Method for loading ble settings for windows
        /// </summary>
        public void LoadWindowsBlue2Settings()
        {
            if (WindowsBLEManager.SharedInstance.HasAnyPairedDevice)
            {
                ConnectionStatus = HACCPUtil.GetResourceString("ConnectionStatusDisconnect");
                Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style;

                var settings = WindowsBLEManager.SharedInstance.Settings;

                if (settings != null)
                {
                    EnableControls = true;

                    Blue2Id = settings.SNo;
                    if (!string.IsNullOrEmpty(Blue2Id))
                    {
                        Blue2IdVisible = true;
                    }

                    _measurementTiming = settings.MeasurementLevel;
                    Timing             = string.Format("{0} {1}", _measurementTiming, HACCPUtil.GetResourceString("sec"));

                    IsTimingPlusEnabled = IsTimingMinusEnabled = true;
                    if (_measurementTiming == 5)
                    {
                        IsTimingPlusEnabled = false;
                    }
                    else if (_measurementTiming == 1)
                    {
                        IsTimingMinusEnabled = false;
                    }


                    TemperatureUnit = settings.Scale == 0 ? TemperatureUnit.Celcius : TemperatureUnit.Fahrenheit;

                    _autoOffInterval = settings.AutoOff;
                    Interval         = string.Format("{0} {1}", _autoOffInterval, HACCPUtil.GetResourceString("Minute"));

                    IsIntervalPlusEnabled = IsIntervalMinusEnabled = true;
                    if (_autoOffInterval == 30)
                    {
                        IsIntervalPlusEnabled = false;
                    }
                    else if (_autoOffInterval == 1)
                    {
                        IsIntervalMinusEnabled = false;
                    }

                    _sleepTime = settings.Sleep;
                    Sleep      = string.Format("{0} {1}", _sleepTime, HACCPUtil.GetResourceString("Minute"));

                    IsSleepPlusEnabled = IsSleepMinusEnabled = true;
                    if (_sleepTime == 30)
                    {
                        IsSleepPlusEnabled = false;
                    }
                    else if (_sleepTime == 1)
                    {
                        IsSleepMinusEnabled = false;
                    }

                    CustomProbDescription = settings.Prob;
                    MessagingCenter.Send(new Blue2PlaceHolderVisibility(string.IsNullOrEmpty(CustomProbDescription)),
                                         HaccpConstant.Blue2PlaceholderVisibility);
                }
                else
                {
                    EnableControls = false;
                }
            }
            else
            {
                EnableControls   = false;
                ConnectionStatus =
                    HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false);
                Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style;
                //if (!BLEManager.SharedInstance.adapter.IsBluetoothEnabled)
                //{              // bluetooth in phone is disabled

                //   CustomProbDescription = string.Empty;
                //    MessagingCenter.Send<Blue2PlaceHolderVisibility>(new Blue2PlaceHolderVisibility(true), HACCPConstant.BLUE2_PLACEHOLDER_VISIBILITY);
                //     await page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice"));
                //  }
                //  else
                //   {                                  // connection to the blue2 device is disabled
                Blue2Id               = string.Empty;
                Blue2IdVisible        = false;
                CustomProbDescription = string.Empty;
                MessagingCenter.Send(new Blue2PlaceHolderVisibility(true), HaccpConstant.Blue2PlaceholderVisibility);
                //if (BLEManager.SharedInstance.adapter.IsScanning)
                //  await page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Blue2TurnOnMessage"));
                //   }
            }
        }
Example #7
0
        /// <summary>
        /// Blue2Settings ViewModel
        /// </summary>
        /// <param name="page"></param>
        public Blue2SettingsViewModel(IPage page)
            : base(page)
        {
            _probeDescriptionPlaceHolder = HACCPUtil.GetResourceString("EnterCustomProbeDescription");
            TemperatureUnit = TemperatureUnit.Fahrenheit;

            MessagingCenter.Subscribe <WindowsScanningStatusMessage>(this, HaccpConstant.WindowsScanningStatus, sender =>
            {
                if (sender.IsScanning && ConnectionStatus != HACCPUtil.GetResourceString("ConnectionStatusDisconnect"))
                {
                    ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("Connecting"), false);
                }
                else
                {
                    ConnectionStatus =
                        HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false);
                }
            });

            MessagingCenter.Subscribe <WindowsBleConnectionStatusMessage>(this, HaccpConstant.BleconnectionStatus,
                                                                          sender =>
            {
                if (!WindowsBLEManager.SharedInstance.HasAnyPairedDevice)
                {
                    Blue2Id               = string.Empty;
                    Blue2IdVisible        = false;
                    EnableControls        = false;
                    CustomProbDescription = string.Empty;
                    ConnectionStatus      =
                        HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"),
                                                         false);
                    Blue2ButtonStyle                   = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style;
                    IsTimingPlusEnabled                =
                        IsTimingMinusEnabled           =
                            IsIntervalPlusEnabled      =
                                IsIntervalMinusEnabled = IsSleepPlusEnabled = IsSleepMinusEnabled = false;
                    TemperatureUnit = TemperatureUnit.Fahrenheit;
                    MessagingCenter.Send(new Blue2PlaceHolderVisibility(true),
                                         HaccpConstant.Blue2PlaceholderVisibility);
                }
            });


            MessagingCenter.Subscribe <BleConnectionStatusMessage>(this, HaccpConstant.BleconnectionStatus,
                                                                   async sender =>
            {
                if (!BLEManager.SharedInstance.Adapter.IsBluetoothEnabled)
                {
                    // bluetooth in phone is disabled
                    Blue2IdVisible        = false;
                    Blue2Id               = string.Empty;
                    EnableControls        = false;
                    CustomProbDescription = string.Empty;
                    ConnectionStatus      =
                        HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"),
                                                         false);
                    Blue2ButtonStyle                   = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style;
                    IsTimingPlusEnabled                =
                        IsTimingMinusEnabled           =
                            IsIntervalPlusEnabled      =
                                IsIntervalMinusEnabled = IsSleepPlusEnabled = IsSleepMinusEnabled = false;
                    TemperatureUnit = TemperatureUnit.Fahrenheit;
                    MessagingCenter.Send(new Blue2PlaceHolderVisibility(true),
                                         HaccpConstant.Blue2PlaceholderVisibility);
                    if (!_isAlertActive)
                    {
                        _isAlertActive = true;
                        await
                        page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice"));
                        _isAlertActive = false;
                    }
                }
                else if (!BLEManager.SharedInstance.IsConnected)
                {
                    // connection to the blue2 device is disabled
                    Blue2Id               = string.Empty;
                    Blue2IdVisible        = false;
                    EnableControls        = false;
                    CustomProbDescription = string.Empty;
                    ConnectionStatus      =
                        HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"),
                                                         false);
                    Blue2ButtonStyle                   = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style;
                    IsTimingPlusEnabled                =
                        IsTimingMinusEnabled           =
                            IsIntervalPlusEnabled      =
                                IsIntervalMinusEnabled = IsSleepPlusEnabled = IsSleepMinusEnabled = false;
                    TemperatureUnit = TemperatureUnit.Fahrenheit;
                    MessagingCenter.Send(new Blue2PlaceHolderVisibility(true),
                                         HaccpConstant.Blue2PlaceholderVisibility);
                }
                else if (BLEManager.SharedInstance.IsConnected)
                {
                    ConnectionStatus = HACCPUtil.GetResourceString("ConnectionStatusDisconnect");
                    Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style;
                }
            });

            MessagingCenter.Subscribe <BLEBlue2SettingsUpdatedMessage>(this, HaccpConstant.Bleblue2SettingsUpdate,
                                                                       sender =>
            {
                if (HaccpAppSettings.SharedInstance.IsWindows)
                {
                    LoadWindowsBlue2Settings();
                }
                else if (BLEManager.SharedInstance.Settings != null)
                {
                    LoadBlue2Settings();
                }
            });

            MessagingCenter.Subscribe <BleConnectionTimeOutMessage>(this, HaccpConstant.BleconnectionTimeout,
                                                                    async sender =>
            {
                await page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Blue2TurnOnMessage"));
            });

            MessagingCenter.Subscribe <BleScanCompleteMessage>(this, HaccpConstant.Blue2ScanComplete,
                                                               sender =>
            {
                ConnectionStatus =
                    HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false);
            });
        }
Example #8
0
        /// <summary>
        ///     Initializes a new instance of the <see /> class.
        /// </summary>
        /// <param name="page">Page.</param>
        /// <param name="item"></param>
        public RecordTempViewModel(IPage page, LocationMenuItem item)
            : base(page)
        {
            dataStore    = new SQLiteDataStore();
            SelectedItem = item;

            IsManualEntryOn = Settings.RecordingMode == RecordingMode.Manual;

            TemperatureUnit = HaccpAppSettings.SharedInstance.DeviceSettings.TempScale == 0
                ? TemperatureUnit.Fahrenheit
                : TemperatureUnit.Celcius;

            var min = HACCPUtil.ConvertToDouble(SelectedItem.Min);
            var max = HACCPUtil.ConvertToDouble(SelectedItem.Max);

            MinimumTemperature = TemperatureUnit == TemperatureUnit.Celcius
                ? Math.Round(HACCPUtil.ConvertFahrenheitToCelsius(min)).ToString()
                : SelectedItem.Min;
            MaximumTemperature = TemperatureUnit == TemperatureUnit.Celcius
                ? Math.Round(HACCPUtil.ConvertFahrenheitToCelsius(max)).ToString()
                : SelectedItem.Max;

            MessagingCenter.Subscribe <WindowsScanningStatusMessage>(this, HaccpConstant.WindowsScanningStatus, sender =>
            {
                if (sender.IsScanning && ConnectionStatus != HACCPUtil.GetResourceString("ConnectionStatusDisconnect"))
                {
                    ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("Connecting"), false);
                }
                else
                {
                    ConnectionStatus =
                        HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false);
                }
            });

            MessagingCenter.Subscribe <BleTemperatureReadingMessage>(this, HaccpConstant.BletemperatureReading, sender =>
            {
                bool connected;

                connected = HaccpAppSettings.SharedInstance.IsWindows
                    ? WindowsBLEManager.SharedInstance.HasAnyPairedDevice
                    : BLEManager.SharedInstance.IsConnected;

                if (connected)
                {
                    var msg = sender;
                    if (msg != null)
                    {
                        OnPropertyChanged("IsWakeButtonVisible");
                        if (msg.IsSleeping)
                        {
                            DisplayBlue2Temperature = HACCPUtil.GetResourceString("Blue2SleepString");
                            LineBreakMode           = LineBreakMode.TailTruncation;
                        }
                        else if (msg.IsHigh)
                        {
                            DisplayBlue2Temperature = HACCPUtil.GetResourceString("Blue2HighString");
                            LineBreakMode           = LineBreakMode.TailTruncation;
                        }
                        else if (msg.IsLow)
                        {
                            DisplayBlue2Temperature = HACCPUtil.GetResourceString("Blue2LowString");
                            LineBreakMode           = LineBreakMode.TailTruncation;
                        }
                        else if (msg.IsBatteryLow)
                        {
                            DisplayBlue2Temperature = HACCPUtil.GetResourceString("Blue2BatteryString");
                            LineBreakMode           = LineBreakMode.TailTruncation;
                        }
                        else
                        {
                            var temp = msg.TempValue;
                            var unit = msg.TempUnit;
                            if (TemperatureUnit == TemperatureUnit.Celcius && unit != 0)
                            {
                                temp = HACCPUtil.ConvertFahrenheitToCelsius(temp);
                            }
                            else if (TemperatureUnit == TemperatureUnit.Fahrenheit && unit != 1)
                            {
                                temp = HACCPUtil.ConvertCelsiusToFahrenheit(temp);
                            }

                            DisplayTemperatureReading(temp, msg.ShouldRecord);
                        }
                    }
                }
            });


            MessagingCenter.Subscribe <WindowsBleConnectionStatusMessage>(this, HaccpConstant.BleconnectionStatus,
                                                                          sender =>
            {
                OnPropertyChanged("IsWakeButtonVisible");

                if (!WindowsBLEManager.SharedInstance.HasAnyPairedDevice)
                {
                    ConnectionStatus =
                        HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"),
                                                         false);
                    Blue2ButtonStyle        = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style;
                    Blue2Id                 = string.Empty;
                    DisplayBlue2Temperature = HACCPUtil.GetResourceString("ConnectBlue2Label");
                    LineBreakMode           = LineBreakMode.TailTruncation;
                }
                //else
                //{
                //    ConnectionStatus = HACCPUtil.GetResourceString("ConnectionStatusDisconnect");
                //    Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style;
                //    DisplayBlue2Temperature = string.Empty;
                //    LineBreakMode = LineBreakMode.NoWrap;
                //}
            });


            MessagingCenter.Subscribe <BleConnectionStatusMessage>(this, HaccpConstant.BleconnectionStatus,
                                                                   async sender =>
            {
                OnPropertyChanged("IsWakeButtonVisible");
                if (BLEManager.SharedInstance.IsConnected)
                {
                    ConnectionStatus        = HACCPUtil.GetResourceString("ConnectionStatusDisconnect");
                    Blue2ButtonStyle        = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style;
                    DisplayBlue2Temperature = string.Empty;
                    LineBreakMode           = LineBreakMode.NoWrap;
                }
                else
                {
                    ConnectionStatus =
                        HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"),
                                                         false);
                    Blue2ButtonStyle        = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style;
                    Blue2Id                 = string.Empty;
                    DisplayBlue2Temperature = HACCPUtil.GetResourceString("ConnectBlue2Label");
                    LineBreakMode           = LineBreakMode.TailTruncation;

                    if (!BLEManager.SharedInstance.Adapter.IsBluetoothEnabled && !IsManualEntryOn)
                    {
                        // bluetooth in phone is disabled
                        if (!isAlertActive)
                        {
                            isAlertActive = true;
                            await
                            page.ShowAlert(string.Empty,
                                           HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice"));
                            isAlertActive = false;
                        }
                    }
                }
            });

            MessagingCenter.Subscribe <BLEBlue2SettingsUpdatedMessage>(this, HaccpConstant.Bleblue2SettingsUpdate,
                                                                       sender =>
            {
                if (HaccpAppSettings.SharedInstance.IsWindows && WindowsBLEManager.SharedInstance.Settings != null)
                {
                    LoadWindowsBlue2Settings();
                }

                else if (BLEManager.SharedInstance.Settings != null)
                {
                    Blue2Id = BLEManager.SharedInstance.Settings.SNo;
                }
            });

            MessagingCenter.Subscribe <BleConnectionTimeOutMessage>(this, HaccpConstant.BleconnectionTimeout,
                                                                    async sender =>
            {
                await page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Blue2TurnOnMessage"));
            });

            MessagingCenter.Subscribe <BleScanCompleteMessage>(this, HaccpConstant.Blue2ScanComplete,
                                                               sender =>
            {
                ConnectionStatus =
                    HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false);
            });
        }
        /// <summary>
        ///     Method for loading ble settings for windows
        /// </summary>
        public void LoadWindowsBlue2Settings()
        {
            if (WindowsBLEManager.SharedInstance.HasAnyPairedDevice)
            {
                EnableControls   = true;
                ConnectionStatus = HACCPUtil.GetResourceString("ConnectionStatusDisconnect");
                Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style;

                if (WindowsBLEManager.SharedInstance.Settings != null)
                {
                    var settings = WindowsBLEManager.SharedInstance.Settings;

                    BatteryLevel      = settings.BatteryLevel;
                    ShowBluetoothIcon = true;

                    TemperatureUnit = settings.Scale == 0 ? TemperatureUnit.Celcius : TemperatureUnit.Fahrenheit;

                    if (WindowsBLEManager.SharedInstance.IsSleeping)
                    {
                        CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2SleepString");
                        Blue2TempFontSize           = 22;
                        LineBreakMode = LineBreakMode.TailTruncation;
                    }
                    else if (WindowsBLEManager.SharedInstance.IsHigh)
                    {
                        CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2HighString");
                        Blue2TempFontSize           = 22;
                        LineBreakMode = LineBreakMode.TailTruncation;
                    }
                    else if (WindowsBLEManager.SharedInstance.IsLow)
                    {
                        CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2LowString");
                        Blue2TempFontSize           = 22;
                        LineBreakMode = LineBreakMode.TailTruncation;
                    }
                    else if (WindowsBLEManager.SharedInstance.IsBatteryLow)
                    {
                        CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2BatteryString");
                        Blue2TempFontSize           = 22;
                        LineBreakMode = LineBreakMode.TailTruncation;
                    }
                    else
                    {
                        DisplayTemperatureReading(WindowsBLEManager.SharedInstance.LastReading);
                    }
                }
            }
            else
            {
                EnableControls   = false;
                ConnectionStatus =
                    HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false);
                Blue2ButtonStyle            = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style;
                CurrentTemperatureFormatted = HACCPUtil.GetResourceString("ConnectBlue2Label");
                Blue2TempFontSize           = 22;
                LineBreakMode = LineBreakMode.TailTruncation;
                //if (!BLEManager.SharedInstance.adapter.IsBluetoothEnabled)
                //{              // bluetooth in phone is disabled

                //   CustomProbDescription = string.Empty;
                //    MessagingCenter.Send<Blue2PlaceHolderVisibility>(new Blue2PlaceHolderVisibility(true), HACCPConstant.BLUE2_PLACEHOLDER_VISIBILITY);
                //     await page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice"));
                //  }
                //  else
                //   {                                  // connection to the blue2 device is disabled


                // CustomProbDescription = string.Empty;


                MessagingCenter.Send(new Blue2PlaceHolderVisibility(true), HaccpConstant.Blue2PlaceholderVisibility);
                //if (BLEManager.SharedInstance.adapter.IsScanning)
                //  await page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Blue2TurnOnMessage"));
                //   }
            }

            OnPropertyChanged("CustomProbDescription");
        }
        /// <summary>
        ///     Loads the blue2 settings.
        /// </summary>
        public async void LoadBlue2Settings(bool tempReady)
        {
            if (BLEManager.SharedInstance.IsConnected)
            {
                EnableControls   = true;
                ConnectionStatus = HACCPUtil.GetResourceString("ConnectionStatusDisconnect");
                Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style;
                if (BLEManager.SharedInstance.Settings != null)
                {
                    var settings = BLEManager.SharedInstance.Settings;

                    BatteryLevel      = settings.BatteryLevel;
                    ShowBluetoothIcon = true;

                    TemperatureUnit = settings.Scale == 0 ? TemperatureUnit.Celcius : TemperatureUnit.Fahrenheit;

                    if (tempReady)
                    {
                        if (BLEManager.SharedInstance.IsSleeping)
                        {
                            CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2SleepString");
                            Blue2TempFontSize           = 22;
                            LineBreakMode = LineBreakMode.TailTruncation;
                        }
                        else if (BLEManager.SharedInstance.IsHigh)
                        {
                            CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2HighString");
                            Blue2TempFontSize           = 22;
                            LineBreakMode = LineBreakMode.TailTruncation;
                        }
                        else if (BLEManager.SharedInstance.IsLow)
                        {
                            CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2LowString");
                            Blue2TempFontSize           = 22;
                            LineBreakMode = LineBreakMode.TailTruncation;
                        }
                        else if (BLEManager.SharedInstance.IsBatteryLow)
                        {
                            CurrentTemperatureFormatted = HACCPUtil.GetResourceString("Blue2BatteryString");
                            Blue2TempFontSize           = 22;
                            LineBreakMode = LineBreakMode.TailTruncation;
                        }
                        else
                        {
                            DisplayTemperatureReading(BLEManager.SharedInstance.LastReading);
                        }
                    }
                }
            }
            else
            {
                EnableControls = false;

                PermissionStatus status = await CrossPermissions.Current.CheckPermissionStatusAsync(Plugin.Permissions.Abstractions.Permission.Location);

                if (status == PermissionStatus.Granted)
                {
                    ConnectionStatus = BLEManager.SharedInstance.ScanTimeOutElapsed
                    ? HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false)
                    : HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanning"), false);
                }
                else
                {
                    ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false);
                    BLEManager.SharedInstance.Adapter.CancelScanning();
                    BLEManager.SharedInstance.ScanTimeOutElapsed = true;
                }

                Blue2ButtonStyle            = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style;
                ShowBluetoothIcon           = false;
                CurrentTemperatureFormatted = HACCPUtil.GetResourceString("ConnectBlue2Label");
                Blue2TempFontSize           = 22;
                LineBreakMode = LineBreakMode.TailTruncation;

                if (!BLEManager.SharedInstance.Adapter.IsBluetoothEnabled)
                {
                    // bluetooth in phone is disabled
                    await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice"));
                }
                else if (BLEManager.SharedInstance.Adapter.IsScanning)
                {
                    // connection to the blue2 device is disabled
                    await Page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Blue2TurnOnMessage"));
                }
            }

            OnPropertyChanged("CustomProbDescription");
        }
        /// <summary>
        ///     Initializes a new instance of the <see cref="HACCP.Core.ThermometerModeViewModel" /> class.
        /// </summary>
        /// <param name="page">Page.</param>
        public ThermometerModeViewModel(IPage page)
            : base(page)
        {
            AppVerison = string.Format("{0}: {1}", HACCPUtil.GetResourceString("VersionLabel"),
                                       DependencyService.Get <IInfoService>().GetAppVersion());


            MessagingCenter.Subscribe <WindowsScanningStatusMessage>(this, HaccpConstant.WindowsScanningStatus, sender =>
            {
                if (sender.IsScanning && ConnectionStatus != HACCPUtil.GetResourceString("ConnectionStatusDisconnect"))
                {
                    ConnectionStatus = HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("Connecting"), false);
                }
                else
                {
                    ConnectionStatus =
                        HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false);
                }
            });

            MessagingCenter.Subscribe <WindowsBleConnectionStatusMessage>(this, HaccpConstant.BleconnectionStatus, sender =>
            {
                OnPropertyChanged("IsWakeButtonVisible");

                if (!WindowsBLEManager.SharedInstance.HasAnyPairedDevice)
                {
                    EnableControls   = false;
                    ConnectionStatus =
                        HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"),
                                                         false);
                    Blue2ButtonStyle            = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style;
                    CurrentTemperatureFormatted = HACCPUtil.GetResourceString("ConnectBlue2Label");
                    TemperatureUnit             = TemperatureUnit.Fahrenheit;
                    Blue2TempFontSize           = 22;
                    LineBreakMode = LineBreakMode.TailTruncation;
                    MessagingCenter.Send(new Blue2PlaceHolderVisibility(true),
                                         HaccpConstant.Blue2PlaceholderVisibility);
                }

                OnPropertyChanged("CustomProbDescription");
            });


            MessagingCenter.Subscribe <BleConnectionStatusMessage>(this, HaccpConstant.BleconnectionStatus,
                                                                   async sender =>
            {
                OnPropertyChanged("IsWakeButtonVisible");
                if (!BLEManager.SharedInstance.Adapter.IsBluetoothEnabled)
                {
                    // bluetooth in phone is disabled
                    ConnectionStatus =
                        HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"),
                                                         false);
                    Blue2ButtonStyle            = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style;
                    CurrentTemperatureFormatted = HACCPUtil.GetResourceString("ConnectBlue2Label");
                    Blue2TempFontSize           = 22;
                    LineBreakMode  = LineBreakMode.TailTruncation;
                    EnableControls = false;
                    if (!isAlertActive)
                    {
                        isAlertActive = true;
                        await
                        page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("TurnONBluetoothonyourdevice"));
                        isAlertActive = false;
                    }
                }
                else if (!BLEManager.SharedInstance.IsConnected)
                {
                    // connection to the blue2 device is disabled
                    CurrentTemperatureFormatted = HACCPUtil.GetResourceString("ConnectBlue2Label");
                    Blue2TempFontSize           = 22;
                    LineBreakMode    = LineBreakMode.TailTruncation;
                    ConnectionStatus =
                        HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"),
                                                         false);
                    Blue2ButtonStyle = Application.Current.Resources["Blue2ButtonNotActiveStyle"] as Style;
                    EnableControls   = false;
                }
                else if (BLEManager.SharedInstance.IsConnected)
                {
                    CurrentTemperatureFormatted = string.Empty;
                    ConnectionStatus            = HACCPUtil.GetResourceString("ConnectionStatusDisconnect");
                    Blue2ButtonStyle            = Application.Current.Resources["Blue2ButtonActiveStyle"] as Style;
                }
                OnPropertyChanged("CustomProbDescription");
            });

            MessagingCenter.Subscribe <BLEBlue2SettingsUpdatedMessage>(this, HaccpConstant.Bleblue2SettingsUpdate,
                                                                       sender =>
            {
                if (HaccpAppSettings.SharedInstance.IsWindows)
                {
                    LoadWindowsBlue2Settings();
                }
                else if (BLEManager.SharedInstance.Settings != null)
                {
                    LoadBlue2Settings(false);
                }
            });

            MessagingCenter.Subscribe <BleConnectionTimeOutMessage>(this, HaccpConstant.BleconnectionTimeout,
                                                                    async sender =>
            {
                await page.ShowAlert(string.Empty, HACCPUtil.GetResourceString("Blue2TurnOnMessage"));
            });


            MessagingCenter.Subscribe <BleScanCompleteMessage>(this, HaccpConstant.Blue2ScanComplete,
                                                               sender =>
            {
                ConnectionStatus =
                    HACCPUtil.TruncateResourceString(HACCPUtil.GetResourceString("ConnectionStatusScanBlue2"), false);
            });
        }