#pragma once

enum class InputModal { NONE, VOICE, SETTINGS, ERROR };

// A and B share eligibility. Their actions remain owned by the modal reducer.
constexpr bool shell_long_press_allowed(InputModal modal, bool approval_modal) {
    return !approval_modal && (modal == InputModal::NONE || modal == InputModal::SETTINGS);
}

// Double A / Double B shortcuts exist only on the normal top-level Shell with no
// modal, no approval and no overlay. Every other owner keeps the original
// immediate single CLICK latency and never sees a DOUBLE_CLICK.
constexpr bool shell_double_press_allowed(InputModal modal, bool approval_modal,
                                          bool overlay_visible) {
    return !approval_modal && modal == InputModal::NONE && !overlay_visible;
}