public signal void visibility_changed(bool visible);
zavai.Applet current;
- string current_name;
+ public string current_name;
public Zavai()
{
}
}
+ public void hide()
+ {
+ visible = false;
+ visibility = false;
+ visibility_changed(visibility);
+ }
+
public void ensure_visible()
{
if (!visibility)
public bool screen_locked;
private int screen_lock_fd;
+ private bool hide_after_closing_power_menu;
+
public Power()
{
screen_locked = false;
screen_lock_fd = -1;
+ hide_after_closing_power_menu = false;
usage = zavai.registry.sbus.get_object(
"org.freesmartphone.ousaged",
if (!pressed)
{
if (screen_locked)
+ {
+ // TODO: short press: turn on backlight for a sec
+ // TODO: long press: unlock
set_screen_lock(false);
+ }
else
{
- zavai.app.push_applet("menu.power");
- zavai.app.ensure_visible();
+ if (zavai.app.current_name == "menu.power" && zavai.app.visibility)
+ {
+ // Hide or back
+ zavai.app.back();
+ if (hide_after_closing_power_menu)
+ zavai.app.hide();
+ } else if (zavai.app.current_name == "menu.power") {
+ // Unhide
+ zavai.app.ensure_visible();
+ } else {
+ zavai.app.push_applet("menu.power");
+ hide_after_closing_power_menu = !zavai.app.visibility;
+ zavai.app.ensure_visible();
+ }
}
}
}