Ejemplo n.º 1
0
 void OnApplicationFocus(bool focus)
 {
     if (focus && JCloudManager.PlatformIsCloudCompatible())
     {
         JCloudExtern.ResetUbiquityStatus();
     }
 }
Ejemplo n.º 2
0
 void OnApplicationPause(bool pause)
 {
     if (!pause && JCloudManager.PlatformIsCloudCompatible())
     {
         JCloudExtern.ResetUbiquityStatus();
     }
 }
Ejemplo n.º 3
0
    public static bool PollCloudDataAvailability()
    {
#if !UNITY_EDITOR && ((UNITY_IPHONE && JCLOUDPLUGIN_IOS) || (UNITY_STANDALONE_OSX && JCLOUDPLUGIN_OSX))
        if (JCloudManager.PlatformIsCloudCompatible() && (AcceptJailbrokenDevices || JCloudExtern.IsJailbroken() == false))
        {
            return(JCloudExtern.GetUbiquitousStoreAvailability());
        }
        else
#endif
        return(false);
    }
Ejemplo n.º 4
0
    public static void Save()
    {
#if !UNITY_EDITOR && ((UNITY_IPHONE && JCLOUDPLUGIN_IOS) || (UNITY_STANDALONE_OSX && JCLOUDPLUGIN_OSX))
        if (JCloudManager.PlatformIsCloudCompatible() && (AcceptJailbrokenDevices || JCloudExtern.IsJailbroken() == false))
        {
            JCloudExtern.CloudDataSave();
        }
        else
#endif
        PlayerPrefs.Save();
    }
Ejemplo n.º 5
0
    public static bool HasKey(string key)
    {
#if !UNITY_EDITOR && ((UNITY_IPHONE && JCLOUDPLUGIN_IOS) || (UNITY_STANDALONE_OSX && JCLOUDPLUGIN_OSX))
        if (JCloudManager.PlatformIsCloudCompatible() && (AcceptJailbrokenDevices || JCloudExtern.IsJailbroken() == false))
        {
            return(JCloudExtern.CloudDataHasKey(key));
        }
        else
#endif
        return(PlayerPrefs.HasKey(key));
    }
Ejemplo n.º 6
0
    // Constructor
    public JCloudManager()
    {
        // Make sure state change callback pointer was set
        if (stateChangeCallbackPointer == System.IntPtr.Zero)
        {
            DocumentStateDidChangeDelegate stateChangeCallback = DocumentStateDidChange;
            stateChangeCallbackHandle  = GCHandle.Alloc(stateChangeCallback);
            stateChangeCallbackPointer = Marshal.GetFunctionPointerForDelegate(stateChangeCallback);
            JCloudExtern.SetStateChangeCallbackPointer(stateChangeCallbackPointer);
        }

        // Make sure status change callback pointer was set
        if (statusChangeCallbackPointer == System.IntPtr.Zero)
        {
            DocumentStatusDidChangeDelegate statusChangeCallback = DocumentStatusDidChange;
            statusChangeCallbackHandle  = GCHandle.Alloc(statusChangeCallback);
            statusChangeCallbackPointer = Marshal.GetFunctionPointerForDelegate(statusChangeCallback);
            JCloudExtern.SetStatusChangeCallbackPointer(statusChangeCallbackPointer);
        }

        // Make sure progress change callback pointer was set
        if (progressChangeCallbackPointer == System.IntPtr.Zero)
        {
            DocumentProgressDidChangeDelegate progressChangeCallback = DocumentProgressDidChange;
            progressChangeCallbackHandle  = GCHandle.Alloc(progressChangeCallback);
            progressChangeCallbackPointer = Marshal.GetFunctionPointerForDelegate(progressChangeCallback);
            JCloudExtern.SetProgressChangeCallbackPointer(progressChangeCallbackPointer);
        }

        // Make sure key-value store change callback pointer was set
        if (keyValueStoreChangeCallbackPointer == System.IntPtr.Zero)
        {
            KeyValueStoreDidChangeExternallyDelegate keyValueStoreChangeCallback = KeyValueStoreDidChangeExternally;
            keyValueStoreChangeCallbackHandle  = GCHandle.Alloc(keyValueStoreChangeCallback);
            keyValueStoreChangeCallbackPointer = Marshal.GetFunctionPointerForDelegate(keyValueStoreChangeCallback);
            JCloudExtern.CloudDataSetCallbackPointer(keyValueStoreChangeCallbackPointer);
        }

        // Make sure file change callback pointer was set
        if (fileChangeCallbackPointer == System.IntPtr.Zero)
        {
            FileDidChangeDelegate fileChangeCallback = FileDidChange;
            fileChangeChangeCallbackHandle = GCHandle.Alloc(fileChangeCallback);
            fileChangeCallbackPointer      = Marshal.GetFunctionPointerForDelegate(fileChangeCallback);
            JCloudExtern.CloudMetadataSetCallbackPointer(fileChangeCallbackPointer);
        }

        // First run will set persistent data path
        if (JCloudManager.persistentDataPathIsSet == false)
        {
            JCloudExtern.SetPersistentDataPath(JCloudManager.JCloudDocumentFallbackPath);
            JCloudManager.persistentDataPathIsSet = true;
        }
    }
Ejemplo n.º 7
0
    public static void SetFloat(string key, float value)
    {
        // Set float
#if !UNITY_EDITOR && ((UNITY_IPHONE && JCLOUDPLUGIN_IOS) || (UNITY_STANDALONE_OSX && JCLOUDPLUGIN_OSX))
        if (JCloudManager.PlatformIsCloudCompatible() && (AcceptJailbrokenDevices || JCloudExtern.IsJailbroken() == false))
        {
            JCloudExtern.CloudDataSetFloat(key, value);
        }
        else
#endif
        PlayerPrefs.SetFloat(key, value);
    }
Ejemplo n.º 8
0
    public static int GetInt(string key, int defaultValue)
    {
        // Get int, if key doesn't exist, value will keep the defaultValue
#if !UNITY_EDITOR && ((UNITY_IPHONE && JCLOUDPLUGIN_IOS) || (UNITY_STANDALONE_OSX && JCLOUDPLUGIN_OSX))
        if (JCloudManager.PlatformIsCloudCompatible() && (AcceptJailbrokenDevices || JCloudExtern.IsJailbroken() == false))
        {
            int value = defaultValue;
            JCloudExtern.CloudDataGetInt(key, ref value);
            return(value);
        }
        else
#endif
        return(PlayerPrefs.GetInt(key, defaultValue));
    }
Ejemplo n.º 9
0
    public static void RemoveFileChangeRegisteredComponent(Component component)
    {
        lock (fileChangeRegisteredComponents)
        {
            if (fileChangeRegisteredComponents.Contains(component))
            {
                fileChangeRegisteredComponents.Remove(component);
            }

            if (fileChangeRegisteredComponents.Count == 0)
            {
                JCloudExtern.CloudMetadataSetShouldMessage(false);
            }
        }
    }
Ejemplo n.º 10
0
    public static void AddFileChangeRegisteredComponent(Component component)
    {
        lock (fileChangeRegisteredComponents)
        {
            if (!fileChangeRegisteredComponents.Contains(component))
            {
                fileChangeRegisteredComponents.Add(component);
            }

            if (fileChangeRegisteredComponents.Count == 1)
            {
                JCloudExtern.CloudMetadataSetShouldMessage(true);
            }
        }
    }
Ejemplo n.º 11
0
    public static void RemoveKeyValueStoreRegisteredComponent(Component component)
    {
        lock (keyValueStoreDataRegisteredComponents)
        {
            if (keyValueStoreDataRegisteredComponents.Contains(component))
            {
                keyValueStoreDataRegisteredComponents.Remove(component);
            }

            if (keyValueStoreDataRegisteredComponents.Count == 0)
            {
                JCloudExtern.CloudDataSetShouldMessage(false);
            }
        }
    }
Ejemplo n.º 12
0
    public static void AddKeyValueStoreRegisteredComponent(Component component)
    {
        lock (keyValueStoreDataRegisteredComponents)
        {
            if (!keyValueStoreDataRegisteredComponents.Contains(component))
            {
                keyValueStoreDataRegisteredComponents.Add(component);
            }

            if (keyValueStoreDataRegisteredComponents.Count == 1)
            {
                JCloudExtern.CloudDataSetShouldMessage(true);
            }
        }
    }
Ejemplo n.º 13
0
    public static string GetString(string key, string defaultValue)
    {
        // Get string, if key doesn't exist, value will keep the defaultValue
#if !UNITY_EDITOR && ((UNITY_IPHONE && JCLOUDPLUGIN_IOS) || (UNITY_STANDALONE_OSX && JCLOUDPLUGIN_OSX))
        if (JCloudManager.PlatformIsCloudCompatible() && (AcceptJailbrokenDevices || JCloudExtern.IsJailbroken() == false))
        {
            string        value = defaultValue;
            System.IntPtr valuePtr;
            if (JCloudExtern.CloudDataGetString(key, out valuePtr))
            {
                value = Marshal.PtrToStringAnsi(valuePtr);
                JCloudExtern.FreeMemory(valuePtr);
            }

            return(value);
        }
        else
#endif
        return(PlayerPrefs.GetString(key, defaultValue));
    }
Ejemplo n.º 14
0
    public static bool UnregisterCloudDataExternalChanges(Component componentOrGameObject)
    {
#if !UNITY_EDITOR && ((UNITY_IPHONE && JCLOUDPLUGIN_IOS) || (UNITY_STANDALONE_OSX && JCLOUDPLUGIN_OSX))
        if (JCloudManager.PlatformIsCloudCompatible() && (AcceptJailbrokenDevices || JCloudExtern.IsJailbroken() == false))
        {
            // Failsafe
            if (componentOrGameObject == null)
            {
                return(false);
            }

            // Check manager status
            JCloudManager.CheckManagerStatus();

            // Remove
            JCloudManager.RemoveKeyValueStoreRegisteredComponent(componentOrGameObject);

            return(true);
        }
#endif

        return(false);
    }