Example #1
0
 def cb(obj, event):
     nonlocal first_time_usage
     if event == lv.EVENT.RELEASED:
         c = obj.get_active_btn_text()
         if c is None:
             return
         if c == lv.SYMBOL.CLOSE:
             pin_lbl.set_text("")
             antiphish_label.set_text(antiphishing_word(""))
         elif c == lv.SYMBOL.OK:
             # FIXME: check PIN len
             Key.generate_key(pin_lbl.get_text())
             if first_time_usage:
                 Secret.save_secret(alert)
                 callback()
             else:
                 Pin.counter -= 1
                 Pin.save_counter(alert)
                 if Pin.is_pin_valid():
                     Pin.reset_counter(alert)
                     callback()
                 else:
                     instruct_label.set_text(
                         "#f07070 Wrong pin: %d/%d #" %
                         (Pin.counter, Pin.ATTEMPTS_MAX))
                     if Pin.counter <= 0:
                         Factory_settings.restore(alert)
                         Secret.generate_secret()
                         alert("Security", "Device has been factory reset!")
                         first_time_usage = True
                         title_lbl.set_text(first_time_title)
                         instruct_label.set_text(instruct_txt)
             pin_lbl.set_text("")
             antiphish_label.set_text(antiphishing_word(""))
         else:
             instruct_label.set_text(instruct_txt)
             pin_lbl.add_text(c)
             word = antiphishing_word(pin_lbl.get_text())
             antiphish_label.set_text(antiphish_label.get_text() + " " +
                                      word)