public void CommitAndClose(AN_SnapshotsClient client, AN_Snapshot snapshot, AN_SnapshotMetadataChange metadataChange, Action <AN_SnapshotMetadataResult> callback)
 {
     SA_Coroutine.WaitForSeconds(1, () => {
         var result = new AN_SnapshotMetadataResult(new AN_SnapshotMetadata());
         callback.Invoke(result);
     });
 }
        private void VerifySnapshotsSave(string name)
        {
            var client = AN_Games.GetSnapshotsClient();

            client.Open(name, m_createIfNotFound, m_conflictPolicy, (result) => {
                if (result.IsSucceeded)
                {
                    AN_Snapshot snapshot = result.Data.GetSnapshot();
                    byte[] data          = snapshot.ReadFully();
                    var meta             = snapshot.GetMetadata();

                    if (meta.ProgressValue != m_progress)
                    {
                        SetResult(SA_TestResult.WithError("ProgressValue verification failed"));
                        return;
                    }

                    if (meta.PlayedTime != m_playedTime)
                    {
                        SetResult(SA_TestResult.WithError("PlayedTime verification failed"));
                        return;
                    }

                    string snapshotData = string.Empty;
                    snapshotData        = snapshotData.FromBytes(data);
                    if (!snapshotData.Equals(m_snpashotData))
                    {
                        SetResult(SA_TestResult.WithError("Snapshot Data verification failed"));
                        return;
                    }
                }

                SetAPIResult(result);
            });
        }
 public void ResolveConflict(AN_SnapshotsClient client, string conflictId, AN_Snapshot snapshot,
                             Action <AN_LinkedObjectResult <AN_DataOrConflictResult> > callback)
 {
     SA_Coroutine.WaitForSeconds(1, () => {
         var result = new AN_LinkedObjectResult <AN_DataOrConflictResult>(new AN_DataOrConflictResult());
         callback.Invoke(result);
     });
 }
        private void ReadAndWrite(string name)
        {
            var client = AN_Games.GetSnapshotsClient();

            client.Open(name, m_createIfNotFound, m_conflictPolicy, (result) => {
                if (result.IsSucceeded)
                {
                    AN_Logger.Log("We have snapshot, reading data...");
                    AN_Snapshot snapshot = result.Data.GetSnapshot();

                    byte[] data = snapshot.ReadFully();

                    var meta     = snapshot.GetMetadata();
                    m_progress   = meta.ProgressValue + 10;
                    m_playedTime = meta.PlayedTime + 100;


                    string base64Text = Convert.ToBase64String(data);
                    AN_Logger.Log("Snapshot data: " + base64Text);
                    PrintSnapshotMetadata(snapshot.GetMetadata());


                    AN_Logger.Log("Writing data...");

                    m_snpashotData = "My game data " + name;
                    data           = m_snpashotData.ToBytes();

                    snapshot.WriteBytes(data);


                    SA_ScreenUtil.TakeScreenshot(512, (screenshot) => {
                        var changeBuilder = new AN_SnapshotMetadataChange.Builder();
                        changeBuilder.SetDescription("Hello Description");
                        changeBuilder.SetPlayedTimeMillis(m_playedTime);
                        changeBuilder.SetProgressValue(m_progress);
                        changeBuilder.SetCoverImage(screenshot);

                        AN_SnapshotMetadataChange changes = changeBuilder.Build();
                        client.CommitAndClose(snapshot, changes, (commitResult) => {
                            if (commitResult.IsSucceeded)
                            {
                                PrintSnapshotMetadata(commitResult.Metadata);
                                VerifySnapshotsSave(name);
                            }
                            else
                            {
                                SetAPIResult(result);
                            }
                        });
                    });
                }
                else
                {
                    SetAPIResult(result);
                }
            });
        }
Exemple #5
0
        public AN_SnapshotMetadata Snapshot_GetMetadata(AN_Snapshot snapshot)
        {
            var json = AN_Java.Bridge.CallStatic <string>(AN_Snapshot, "GetMetadata", snapshot.HashCode);

            if (string.IsNullOrEmpty(json))
            {
                return(null);
            }
            return(JsonUtility.FromJson <AN_SnapshotMetadata>(json));
        }
    private void OpenSnapshot(string name)
    {
        var client = AN_Games.GetSnapshotsClient();

        bool createIfNotFound = true;
        var  conflictPolicy   = AN_SnapshotsClient.ResolutionPolicy.LAST_KNOWN_GOOD;

        client.Open(name, createIfNotFound, conflictPolicy, (result) => {
            if (result.IsSucceeded)
            {
                Debug.Log("We have snapshot, reading data...");
                AN_Snapshot snapshot = result.Data;

                byte[] data = snapshot.ReadFully();

                long progress     = snapshot.GetMetadata().ProgressValue;
                string base64Text = Convert.ToBase64String(data);
                Debug.Log("Snapshot data: " + base64Text);
                Debug.Log("Snapshot progress: " + snapshot.GetMetadata().ProgressValue);
                Debug.Log("Snapshot played time: " + snapshot.GetMetadata().PlayedTime);


                Debug.Log("Writing data...");

                string mydata = "My game data";
                data          = mydata.ToBytes();

                snapshot.WriteBytes(data);

                SA_ScreenUtil.TakeScreenshot(512, (screenshot) => {
                    var changeBuilder = new AN_SnapshotMetadataChange.Builder();
                    changeBuilder.SetDescription("Hello Description");
                    changeBuilder.SetPlayedTimeMillis(10000);
                    changeBuilder.SetProgressValue(progress + 1);
                    changeBuilder.SetCoverImage(screenshot);

                    AN_SnapshotMetadataChange changes = changeBuilder.Build();
                    client.CommitAndClose(snapshot, changes, (commitResult) => {
                        if (commitResult.IsSucceeded)
                        {
                            PrintMeta(commitResult.Metadata);
                        }
                        else
                        {
                            Debug.Log("CommitAndClose Snapshots Failed: " + result.Error.FullMessage);
                        }
                    });
                });
            }
            else
            {
                Debug.Log("Open Snapshots Failed: " + result.Error.FullMessage);
            }
        });
    }
Exemple #7
0
        public byte[] Snapshot_ReadFully(AN_Snapshot snapshot)
        {
            var base64EncodedString = AN_Java.Bridge.CallStatic <string>(AN_Snapshot, "ReadFully", snapshot.HashCode);

            if (string.IsNullOrEmpty(base64EncodedString))
            {
                return(new byte[] { });
            }

            return(base64EncodedString.BytesFromBase64String());
        }
        public void Snapshot_WriteBytes(AN_Snapshot snapshot, byte[] data)
        {
            string base64EncodedString = Convert.ToBase64String(data);

            AN_Java.Bridge.CallStatic(AN_Snapshot, "WriteBytes", snapshot.HashCode, base64EncodedString);
        }
 public void CommitAndClose(AN_SnapshotsClient client, AN_Snapshot snapshot, AN_SnapshotMetadataChange metadataChange, Action <AN_SnapshotMetadataResult> callback)
 {
     AN_Java.Bridge.CallStaticWithCallback(AN_SnapshotsClient, "CommitAndClose", callback, client.HashCode, snapshot.HashCode, metadataChange);
 }
 public AN_SnapshotMetadata Snapshot_GetMetadata(AN_Snapshot snapshot)
 {
     return(new AN_SnapshotMetadata());
 }
 public byte[] Snapshot_ReadFully(AN_Snapshot snapshot)
 {
     return(new byte[] { });
 }
        //--------------------------------------
        // AN_Snapshot
        //--------------------------------------

        public void Snapshot_WriteBytes(AN_Snapshot snapshot, byte[] data)
        {
        }
Exemple #13
0
 public void ResolveConflict(AN_SnapshotsClient client, string conflictId, AN_Snapshot snapshot,
                             Action <AN_LinkedObjectResult <AN_DataOrConflictResult> > callback)
 {
     AN_Java.Bridge.CallStaticWithCallback(AN_SnapshotsClient, "ResolveConflict", callback, client.HashCode, conflictId, snapshot.HashCode);
 }