Skip to content

Глюкометр Satellite: убрать зависимость поля PIN от чекбокса#4

Open
JetFoxy wants to merge 1 commit into
Geniy83:masterfrom
JetFoxy:satellite-pin-dependency-fix
Open

Глюкометр Satellite: убрать зависимость поля PIN от чекбокса#4
JetFoxy wants to merge 1 commit into
Geniy83:masterfrom
JetFoxy:satellite-pin-dependency-fix

Conversation

@JetFoxy

@JetFoxy JetFoxy commented Jul 17, 2026

Copy link
Copy Markdown

Проблема

Поле «Satellite meter PIN» в настройках было привязано (android:dependency="bluetooth_meter_enabled") к чекбоксу «Use Bluetooth Meter» — это поле было недоступно для ввода, пока чекбокс выключен.

Чекбокс «Use Bluetooth Meter» включается автоматически только внутри markDeviceAsSuccessful(), то есть после первого успешного подключения к глюкометру. А для Satellite первое подключение не может завершиться успешно без уже введённого PIN (см. beginSatelliteSession()).

Получался замкнутый круг: чтобы ввести PIN — нужно включить чекбокс; чтобы включить чекбокс — нужно успешно подключиться; чтобы подключиться — нужен PIN. Первичная настройка глюкометра Satellite была невозможна.

Исправление

Убрана зависимость android:dependency="bluetooth_meter_enabled" с поля satellite_meter_pin в pref_advanced_settings.xml / pref_data_sync.xml. Поле было скопировано по аналогии с чекбоксами калибровки (bluetooth_meter_for_calibrations*), для которых такая зависимость уместна — они управляют поведением уже работающего подключения, а не участвуют в его установлении.

Теперь корректный порядок настройки:

  1. Ввести PIN (или полный код с этикетки) в настройках — доступно сразу, без предварительных условий
  2. Отсканировать и выбрать устройство на экране «Scan for Bluetooth Meter»
  3. Успешное подключение само включит чекбокс «Use Bluetooth Meter»

Test plan

  • Сбросить настройки/PIN, убедиться что поле PIN доступно для ввода при выключенном чекбоксе «Use Bluetooth Meter»
  • Пройти полный сценарий первичного сопряжения с реальным глюкометром Satellite

The PIN preference was set to depend on bluetooth_meter_enabled, copied
from the calibration toggles further down that legitimately depend on
an already-working connection. But bluetooth_meter_enabled only gets
auto-turned-on by markDeviceAsSuccessful() after a successful first
connection - and for Satellite, that first connection can't succeed
without the PIN already entered. The dependency made it impossible to
ever enter a PIN for a first-time pairing. Removed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant