Exemple #1
0
        public static void CheckPermissionAndPrompt(Addon addon, string permissionKey, string verb, Action <bool> OnResult = null)
        {
            string addonKey = addon.DerivedKey;

            if (addon.SudoAccess || HasPermission(addonKey, permissionKey))
            {
                OnResult?.Invoke(true);
            }
            else if (!DeclinedPermission(addonKey, permissionKey))
            {
                OpenVRTools.ShowAsyncModal(addon.Name + " is requesting permission to " + verb + "\n\nProvided reason: \"" + addon.GetPermissionReasoning(permissionKey) + "\"", "Permission Request", "Accept", "Decline", "Ask Later", null, (response) =>
                {
                    switch (response)
                    {
                    case Valve.VR.VRMessageOverlayResponse.ButtonPress_0:
                        GrantPermission(addonKey, permissionKey, true);

                        OnResult?.Invoke(true);

                        break;

                    case Valve.VR.VRMessageOverlayResponse.ButtonPress_1:
                        GrantPermission(addonKey, permissionKey, false);

                        OnResult?.Invoke(false);

                        break;

                    default:
                        return;
                    }
                });
            }
            else
            {
                OnResult?.Invoke(false);
            }
        }