WidgetBridge Button - Android UI bug

• Hardware model: NodeMCU 1.0
• Smartphone OS: Android 5.0.2
• Blynk server
• Blynk Library version: 0.4.10

нашел UI баг, который на функциональность не влияет, но UI ведет себя некорректно.

Конфигурация:
В проекте подключено 3 девайса:

    • лампа1
    • лампа2
    • блок управления лампами и другими девайсами

на панели виджетов добавлены кнопки включения/выключения (Push mode).
одна из кнопок называется “Выключить всё”, при нажатии на которую отрабатывает следующий код:


//off all
BLYNK_WRITE(V6){
  bridgeBedroomLamp.virtualWrite(V0, 1); // WidgetBridge bridgeBedroomLamp(V11);
  bridgeEnterLamp.virtualWrite(V0, 1); // WidgetBridge bridgeEnterLamp(V22);
  bigLamp.turnOff();
  smallLamp.turnOff();
}

проблема в том, что после нажатия на эту кнопку, соответствующие кнопки выключения для ламп 1) и 2) остаются в состоянии “нажато”, хотя по логике Push button этого не должно быть.
прилагаю видео:

проблему видно на 0:09

1 Like

@Dmitriy шлются ли sync команды на приложение в случае подобных апдейтов через bridge?

1 Like

нет. sync команды не шлются. попробую в ближайшее время обновить код и протестить.
p.s. или это не мне вопрос был? =)

@sadmafioso это вопрос мне :). Да. Бридж команды не синкают состояние. Создал тикет - https://github.com/blynkkk/blynk-server/issues/896

@sadmafioso ааа, я Вас не правильно понял. Ваша проблема в том, что bridgeBedroomLamp.virtualWrite(V0, 1); меняет состояние кнопки на вкл?

Вроде написано, что работает правильно, но в UI не отображается, думаю всё таки дело в том, что с бриджа надо синк на приложение еще слать

@Dmitriy bridgeBedroomLamp.virtualWrite(V0, 1); отрабатывает корректно, и выполняет нужное действие (лампа выключается), но виджет кнопки после этого становится “активным” (красным) на видео. я ожидаю что он отработает так, как будто я тапну по нему - после этого он не остается красным. в начале видео я сначала тапаю по обоим проблемным кнопкам (две нижние левые)

Да. Так как Вы шлете virtulaWrite(, 1); который и ключает кнопку. Как быстрый фикс - можно просто послать virtulaWrite(, 0);. Так кнопка была сделана изначально (несмотря на пуш-свитч мод).

@BlynkAndroidDev бридж шлет синк.

1 Like

@Dmitriy спасибо, помогло. добавил две строчки и проблема решилась:

//off all
BLYNK_WRITE(V6){
  bridgeBedroomLamp.virtualWrite(V0, 1);
  bridgeEnterLamp.virtualWrite(V0, 1);
  bridgeBedroomLamp.virtualWrite(V0, 0); // fix ui
  bridgeEnterLamp.virtualWrite(V0, 0); // fix ui
  bigLamp.turnOff();
  smallLamp.turnOff();
}

можно закрывать

2 Likes