12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- using System;
- using System.Runtime.InteropServices;
- using AOT;
- using UnityEngine;
- namespace Addons.YandexGamesShortcuts
- {
- public static class Shortcuts
- {
- private static Action<bool> m_canSuggestCallback;
- private static Action m_onSuggestionAcceptCallback;
- private static Action m_onSuggestionDeclineCallback;
-
- public static bool CallbackLogging = false;
-
- public static void Suggest(Action onAccept = null, Action onDecline = null)
- {
- m_onSuggestionAcceptCallback = onAccept;
- m_onSuggestionDeclineCallback = onDecline;
-
- SuggestShortcut(SuggestShortcutCallbackAccept, SuggestShortcutCallbackDecline);
- }
- public static void IsCanSuggest(Action<bool> onSuccessCallback)
- {
- m_canSuggestCallback = onSuccessCallback;
-
- CanSuggestShortcut(CanSuggestShortcutCallback);
- }
- [DllImport("__Internal")]
- private static extern void CanSuggestShortcut(Action<int> onSuccess);
-
- [DllImport("__Internal")]
- private static extern void SuggestShortcut(Action onAccept, Action onDecline);
- [MonoPInvokeCallback(typeof(Action<bool>))]
- private static void CanSuggestShortcutCallback(int isCan)
- {
- if (CallbackLogging)
- Debug.Log($"{nameof(Shortcuts)}.{nameof(CanSuggestShortcutCallback)} called. {nameof(isCan)}={isCan}");
-
- m_canSuggestCallback.Invoke(isCan == 1);
- }
-
- [MonoPInvokeCallback(typeof(Action))]
- private static void SuggestShortcutCallbackAccept()
- {
- if (CallbackLogging)
- Debug.Log($"{nameof(Shortcuts)}.{nameof(SuggestShortcutCallbackAccept)} called");
-
- m_onSuggestionAcceptCallback?.Invoke();
- }
- [MonoPInvokeCallback(typeof(Action))]
- private static void SuggestShortcutCallbackDecline()
- {
- if (CallbackLogging)
- Debug.Log($"{nameof(Shortcuts)}.{nameof(SuggestShortcutCallbackDecline)} called");
-
- m_onSuggestionDeclineCallback?.Invoke();
- }
- }
- }
|