Exemple #1
0
        public async void ProcessBasicUpdate(IBasicStatusUpdate parser)
        {
            if (parser.BatteryCase > 100)
            {
                parser.BatteryCase = DeviceMessageCache.Instance.BasicStatusUpdateWithValidCase?.BatteryCase ?? parser.BatteryCase;
            }

            _batteryCase.Content = BluetoothImpl.Instance.DeviceSpec.Supports(IDeviceSpec.Feature.CaseBattery) && parser.BatteryCase <= 100 ? $"{parser.BatteryCase}%" : string.Empty;
            _caseLabel.IsVisible = BluetoothImpl.Instance.DeviceSpec.Supports(IDeviceSpec.Feature.CaseBattery) && parser.BatteryCase <= 100;

            if (BluetoothImpl.Instance.ActiveModel != Models.Buds)
            {
                UpdatePlusPlacement(parser.PlacementL, parser.PlacementR);
                _lastPlacementL = parser.PlacementL;
                _lastPlacementR = parser.PlacementR;
            }

            if (parser is ExtendedStatusUpdateParser p &&
                BluetoothImpl.Instance.DeviceSpec.Supports(IDeviceSpec.Feature.Anc))
            {
                _ancSwitch.SetChecked(p.NoiseCancelling);
            }

            /* Update if disconnected */
            if ((_lastLeftOnline && parser.BatteryL <= 0) || (_lastRightOnline && parser.BatteryR <= 0))
            {
                UpdateConnectionState(parser.BatteryL > 0, parser.BatteryR > 0);
            }

            await BluetoothImpl.Instance.SendRequestAsync(SPPMessage.MessageIds.DEBUG_GET_ALL_DATA);
        }
Exemple #2
0
 public void UpdateDashboard(IBasicStatusUpdate ext)
 {
     UpdateBatteryIcons(ext.BatteryL, Devices.L);
     UpdateBatteryIcons(ext.BatteryR, Devices.R);
     UpdateIcons(ext.BatteryL, ext.BatteryR);
     EarbudWarning(ext.WearState == WearStates.L || ext.WearState == WearStates.Both,
                   ext.WearState == WearStates.R || ext.WearState == WearStates.Both);
 }
Exemple #3
0
 private void InstanceOnBaseUpdate(object?sender, IBasicStatusUpdate e)
 {
     UpdateContent(e.BatteryL, e.BatteryR, e.BatteryCase);
 }