private void updateTooltips()
    {
        OVRInput.Controller controller = grabbable?.grabbedBy?.Controller ?? OVRInput.Controller.None;

        if (grabbable.isGrabbed && controller != OVRInput.Controller.None)
        {
            string buttonName = VRButtonHelper.HumanizeButton(VRButtonHelper.GetIndexTrigger(controller));
            string tooltip    = $"{buttonName} - Squeeze Ventilator";

            grabbedBy            = controller;
            setTooltipForSqueeze = true;

            if (!HandVRTooltipController.HasTooltipText(controller))
            {
                HandVRTooltipController.ShowTooltip(controller, tooltip);
                previousTooltip = tooltip;
            }
        }

        if (setTooltipForSqueeze && controller == OVRInput.Controller.None)
        {
            if (HandVRTooltipController.GetTooltipText(grabbedBy).Equals(previousTooltip))
            {
                HandVRTooltipController.HideTooltip(grabbedBy);
            }

            setTooltipForSqueeze = false;
            grabbedBy            = OVRInput.Controller.None;
        }
    }
    void updateControllerTooltip(GameObject hand, OVRGrabber grabber)
    {
        // Grabbing tooltips should have lowest priority

        OVRInput.Controller controller = grabber.Controller;
        string buttonName  = VRButtonHelper.HumanizeButton(VRButtonHelper.GetHandTrigger(controller));
        string grabTooltip = $"{buttonName} (Hold) - Grab";

        if (grabber.grabbedObject == null && grabber.grabbingCandidates.Count > 0)
        {
            if (!HandVRTooltipController.HasTooltipText(controller))
            {
                HandVRTooltipController.ShowTooltip(controller, grabTooltip);
            }
        }
        else
        {
            if (HandVRTooltipController.GetTooltipText(controller).Equals(grabTooltip))
            {
                HandVRTooltipController.HideTooltip(controller);
            }
        }
    }