com.taptap.sdk.cloudsave 4.8.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/Mobile/Editor/NativeDependencies.xml +9 -0
  2. package/Mobile/Editor/NativeDependencies.xml.meta +3 -0
  3. package/Mobile/Editor/TapCloudSaveMobileProcessBuild.cs +19 -0
  4. package/Mobile/Editor/TapCloudSaveMobileProcessBuild.cs.meta +11 -0
  5. package/Mobile/Editor/TapSDK.CloudSave.Mobile.Editor.asmdef +17 -0
  6. package/Mobile/Editor/TapSDK.CloudSave.Mobile.Editor.asmdef.meta +7 -0
  7. package/Mobile/Editor.meta +8 -0
  8. package/Mobile/Runtime/TapCloudSaveBridge.cs +342 -0
  9. package/Mobile/Runtime/TapCloudSaveBridge.cs.meta +11 -0
  10. package/Mobile/Runtime/TapSDK.CloudSave.Mobile.Runtime.asmdef +20 -0
  11. package/Mobile/Runtime/TapSDK.CloudSave.Mobile.Runtime.asmdef.meta +7 -0
  12. package/Mobile/Runtime.meta +8 -0
  13. package/Mobile.meta +8 -0
  14. package/Runtime/Internal/ITapCloudSaveBridge.cs +18 -0
  15. package/Runtime/Internal/ITapCloudSaveBridge.cs.meta +11 -0
  16. package/Runtime/Internal/TapCloudSaveInitTask.cs +18 -0
  17. package/Runtime/Internal/TapCloudSaveInitTask.cs.meta +11 -0
  18. package/Runtime/Internal/TapTapCloudSaveInternal.cs +54 -0
  19. package/Runtime/Internal/TapTapCloudSaveInternal.cs.meta +11 -0
  20. package/Runtime/Internal.meta +8 -0
  21. package/Runtime/Public/ArchiveData.cs +34 -0
  22. package/Runtime/Public/ArchiveData.cs.meta +3 -0
  23. package/Runtime/Public/ITapCloudSaveCallback.cs +9 -0
  24. package/Runtime/Public/ITapCloudSaveCallback.cs.meta +3 -0
  25. package/Runtime/Public/ITapCloudSaveRequestCallback.cs +15 -0
  26. package/Runtime/Public/ITapCloudSaveRequestCallback.cs.meta +3 -0
  27. package/Runtime/Public/TapCloudSaveRequestCallbackAdapter.cs +35 -0
  28. package/Runtime/Public/TapCloudSaveRequestCallbackAdapter.cs.meta +3 -0
  29. package/Runtime/Public/TapTapCloudSave.cs +46 -0
  30. package/Runtime/Public/TapTapCloudSave.cs.meta +11 -0
  31. package/Runtime/Public.meta +8 -0
  32. package/Runtime/TapSDK.CloudSave.Runtime.asmdef +15 -0
  33. package/Runtime/TapSDK.CloudSave.Runtime.asmdef.meta +7 -0
  34. package/Runtime.meta +8 -0
  35. package/link.xml +3 -0
  36. package/link.xml.meta +7 -0
  37. package/package.json +12 -0
  38. package/package.json.meta +7 -0
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" ?>
2
+ <dependencies>
3
+ <androidPackages>
4
+ <repositories>
5
+ <repository>https://repo.maven.apache.org/maven2</repository>
6
+ </repositories>
7
+ <androidPackage spec="com.taptap.sdk:tap-cloudsave-unity:4.8.0-beta.1"/>
8
+ </androidPackages>
9
+ </dependencies>
@@ -0,0 +1,3 @@
1
+ fileFormatVersion: 2
2
+ guid: 1da9619e5860f4836b7da50cb1c3f141
3
+ timeCreated: 1697443591
@@ -0,0 +1,19 @@
1
+ using System;
2
+ using UnityEditor.Build.Reporting;
3
+ using TapSDK.Core.Editor;
4
+
5
+ namespace TapSDK.CloudSave.Mobile.Editor {
6
+ public class TapCloudSaveMobileProcessBuild : SDKLinkProcessBuild {
7
+ public override int callbackOrder => 0;
8
+
9
+ public override string LinkPath => "TapSDK/CloudSave/link.xml";
10
+
11
+ public override LinkedAssembly[] LinkedAssemblies => new LinkedAssembly[] {
12
+ new LinkedAssembly { Fullname = "TapSDK.CloudSave.Mobile.Runtime" }
13
+ };
14
+
15
+ public override Func<BuildReport, bool> IsTargetPlatform => (report) => {
16
+ return BuildTargetUtils.IsSupportMobile(report.summary.platform);
17
+ };
18
+ }
19
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 36ff696ea20d94228b6160372e7bafdb
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "TapSDK.CloudSave.Mobile.Editor",
3
+ "references": [
4
+ "GUID:56f3da7a178484843974054bafe77e73"
5
+ ],
6
+ "includePlatforms": [
7
+ "Editor"
8
+ ],
9
+ "excludePlatforms": [],
10
+ "allowUnsafeCode": false,
11
+ "overrideReferences": false,
12
+ "precompiledReferences": [],
13
+ "autoReferenced": true,
14
+ "defineConstraints": [],
15
+ "versionDefines": [],
16
+ "noEngineReferences": false
17
+ }
@@ -0,0 +1,7 @@
1
+ fileFormatVersion: 2
2
+ guid: 55891e3494466450a807af84422315bc
3
+ AssemblyDefinitionImporter:
4
+ externalObjects: {}
5
+ userData:
6
+ assetBundleName:
7
+ assetBundleVariant:
@@ -0,0 +1,8 @@
1
+ fileFormatVersion: 2
2
+ guid: 0d9f5f0e3cd9349a5a934e9cc5131ddb
3
+ folderAsset: yes
4
+ DefaultImporter:
5
+ externalObjects: {}
6
+ userData:
7
+ assetBundleName:
8
+ assetBundleVariant:
@@ -0,0 +1,342 @@
1
+ using System.Collections.Generic;
2
+ using TapSDK.Core;
3
+ using System;
4
+ using Newtonsoft.Json;
5
+ using TapSDK.CloudSave.Internal;
6
+
7
+ namespace TapSDK.CloudSave.Mobile
8
+ {
9
+ public class TapCloudSaveBridge : ITapCloudSaveBridge
10
+ {
11
+ public static string TAP_CLOUDSAVE_SERVICE = "BridgeCloudSaveService";
12
+
13
+ public static string TDS_CLOUDSAVE_SERVICE_CLZ = "com.taptap.sdk.cloudsave.unity.BridgeCloudSaveService";
14
+
15
+ public static string TDS_CLOUDSAVE_SERVICE_IMPL = "com.taptap.sdk.cloudsave.unity.BridgeCloudSaveServiceImpl";
16
+
17
+ public TapCloudSaveBridge()
18
+ {
19
+ EngineBridge.GetInstance().Register(TDS_CLOUDSAVE_SERVICE_CLZ, TDS_CLOUDSAVE_SERVICE_IMPL);
20
+ }
21
+
22
+ public void RegisterCloudSaveCallback(ITapCloudSaveCallback callback)
23
+ {
24
+ EngineBridge.GetInstance().CallHandler(new Command.Builder()
25
+ .Service(TAP_CLOUDSAVE_SERVICE)
26
+ .Method("registerCloudSaveCallback")
27
+ .Callback(true)
28
+ .OnceTime(true)
29
+ .CommandBuilder(), (response) =>
30
+ {
31
+ if (callback == null) return;
32
+
33
+ try
34
+ {
35
+ if (response.code != Result.RESULT_SUCCESS || string.IsNullOrEmpty(response.content))
36
+ {
37
+ callback.OnResult(-1);
38
+ return;
39
+ }
40
+
41
+ var result = JsonConvert.DeserializeObject<TapEngineBridgeResult>(response.content);
42
+ if (result != null && result.code == TapEngineBridgeResult.RESULT_SUCCESS)
43
+ {
44
+ var resultCode = JsonConvert.DeserializeObject<int>(result.content);
45
+ if (resultCode != null)
46
+ {
47
+ callback.OnResult(resultCode);
48
+ }
49
+ else
50
+ {
51
+ callback.OnResult(-1);
52
+ }
53
+ }
54
+ else
55
+ {
56
+ callback.OnResult(-1);
57
+ }
58
+ }
59
+ catch (Exception e)
60
+ {
61
+ callback.OnResult(-1);
62
+ }
63
+ });
64
+ }
65
+
66
+ public void CreateArchive(string metadata, string archiveFilePath, string archiveCoverPath, ITapCloudSaveRequestCallback callback)
67
+ {
68
+ EngineBridge.GetInstance().CallHandler(new Command.Builder()
69
+ .Service(TAP_CLOUDSAVE_SERVICE)
70
+ .Method("createArchive")
71
+ .Args("archiveMetadata", metadata)
72
+ .Args("archiveFilePath", archiveFilePath)
73
+ .Args("archiveCoverPath", archiveCoverPath)
74
+ .Callback(true)
75
+ .OnceTime(true)
76
+ .CommandBuilder(), (response) =>
77
+ {
78
+ if (callback == null) return;
79
+
80
+ try
81
+ {
82
+ if (response.code != Result.RESULT_SUCCESS || string.IsNullOrEmpty(response.content))
83
+ {
84
+ callback.OnRequestError(-1, "Failed to create archive: code="+response.code + "content="+response.content);
85
+ return;
86
+ }
87
+
88
+ var result = JsonConvert.DeserializeObject<TapEngineBridgeResult>(response.content);
89
+ if (result != null && result.code == TapEngineBridgeResult.RESULT_SUCCESS)
90
+ {
91
+ var archive = JsonConvert.DeserializeObject<ArchiveData>(result.content);
92
+ if (archive != null)
93
+ {
94
+ callback.OnArchiveCreated(archive);
95
+ }
96
+ else
97
+ {
98
+ callback.OnRequestError(-1, "json convert failed: content="+result.content);
99
+ }
100
+ }
101
+ else
102
+ {
103
+ callback.OnRequestError(-1, "Failed to create archive: content="+response.content);
104
+ }
105
+ }
106
+ catch (Exception e)
107
+ {
108
+ callback.OnRequestError(-1, "Failed to create archive: error=" + e.Message + ", content=" + response.content);
109
+ }
110
+ });
111
+ }
112
+
113
+ public void UpdateArchive(string archiveUuid, string metadata, string archiveFilePath, string archiveCoverPath, ITapCloudSaveRequestCallback callback)
114
+ {
115
+ EngineBridge.GetInstance().CallHandler(new Command.Builder()
116
+ .Service(TAP_CLOUDSAVE_SERVICE)
117
+ .Method("updateArchive")
118
+ .Args("archiveUUID", archiveUuid)
119
+ .Args("archiveMetadata", metadata)
120
+ .Args("archiveFilePath", archiveFilePath)
121
+ .Args("archiveCoverPath", archiveCoverPath)
122
+ .Callback(true)
123
+ .OnceTime(true)
124
+ .CommandBuilder(), (response) =>
125
+ {
126
+ if (callback == null) return;
127
+
128
+ try
129
+ {
130
+ if (response.code != Result.RESULT_SUCCESS || string.IsNullOrEmpty(response.content))
131
+ {
132
+ callback.OnRequestError(-1, "Failed to update archive: code="+response.code + "content="+response.content);
133
+ return;
134
+ }
135
+
136
+ var result = JsonConvert.DeserializeObject<TapEngineBridgeResult>(response.content);
137
+ if (result != null && result.code == TapEngineBridgeResult.RESULT_SUCCESS)
138
+ {
139
+ var archive = JsonConvert.DeserializeObject<ArchiveData>(result.content);
140
+ if (archive != null)
141
+ {
142
+ callback.OnArchiveUpdated(archive);
143
+ }
144
+ else
145
+ {
146
+ callback.OnRequestError(-1, "json convert failed: content="+result.content);
147
+ }
148
+ }
149
+ else
150
+ {
151
+ callback.OnRequestError(-1, "Failed to update archive: content="+response.content);
152
+ }
153
+ }
154
+ catch (Exception e)
155
+ {
156
+ callback.OnRequestError(-1, "Failed to update archive: error=" + e.Message + ", content=" + response.content);
157
+ }
158
+ });
159
+ }
160
+
161
+ public void DeleteArchive(string archiveUuid, ITapCloudSaveRequestCallback callback)
162
+ {
163
+ EngineBridge.GetInstance().CallHandler(new Command.Builder()
164
+ .Service(TAP_CLOUDSAVE_SERVICE)
165
+ .Method("deleteArchive")
166
+ .Args("archiveUUID", archiveUuid)
167
+ .Callback(true)
168
+ .OnceTime(true)
169
+ .CommandBuilder(), (response) =>
170
+ {
171
+ if (callback == null) return;
172
+
173
+ try
174
+ {
175
+ if (response.code != Result.RESULT_SUCCESS || string.IsNullOrEmpty(response.content))
176
+ {
177
+ callback.OnRequestError(-1, "Failed to delete archive: code="+response.code + "content="+response.content);
178
+ return;
179
+ }
180
+
181
+ var result = JsonConvert.DeserializeObject<TapEngineBridgeResult>(response.content);
182
+ if (result != null && result.code == TapEngineBridgeResult.RESULT_SUCCESS)
183
+ {
184
+ var archive = JsonConvert.DeserializeObject<ArchiveData>(result.content);
185
+ if (archive != null)
186
+ {
187
+ callback.OnArchiveDeleted(archive);
188
+ }
189
+ else
190
+ {
191
+ callback.OnRequestError(-1, "json convert failed: content="+response.content);
192
+ }
193
+ }
194
+ else
195
+ {
196
+ callback.OnRequestError(-1, "Failed to delete archive: content="+response.content);
197
+ }
198
+ }
199
+ catch (Exception e)
200
+ {
201
+ callback.OnRequestError(-1, "Failed to delete archive: error=" + e.Message + ", content=" + response.content);
202
+ }
203
+ });
204
+ }
205
+
206
+ public void GetArchiveList(ITapCloudSaveRequestCallback callback)
207
+ {
208
+ EngineBridge.GetInstance().CallHandler(new Command.Builder()
209
+ .Service(TAP_CLOUDSAVE_SERVICE)
210
+ .Method("getArchiveList")
211
+ .Callback(true)
212
+ .OnceTime(true)
213
+ .CommandBuilder(), (response) =>
214
+ {
215
+ if (callback == null) return;
216
+
217
+ try
218
+ {
219
+ if (response.code != Result.RESULT_SUCCESS || string.IsNullOrEmpty(response.content))
220
+ {
221
+ callback.OnRequestError(-1, "Failed to get archive list: code="+response.code + "content="+response.content);
222
+ return;
223
+ }
224
+
225
+ var result = JsonConvert.DeserializeObject<TapEngineBridgeResult>(response.content);
226
+ if (result != null && result.code == TapEngineBridgeResult.RESULT_SUCCESS)
227
+ {
228
+ var archiveList = JsonConvert.DeserializeObject<List<ArchiveData>>(result.content);
229
+ if (archiveList != null)
230
+ {
231
+ callback.OnArchiveListResult(archiveList);
232
+ }
233
+ else
234
+ {
235
+ callback.OnRequestError(-1, "json convert failed: content="+response.content);
236
+ }
237
+ }
238
+ else
239
+ {
240
+ callback.OnRequestError(-1, "Failed to get archive list: content="+response.content);
241
+ }
242
+ }
243
+ catch (Exception e)
244
+ {
245
+ callback.OnRequestError(-1, "Failed to get archive list: error=" + e.Message + ", content=" + response.content);
246
+ }
247
+ });
248
+ }
249
+
250
+ public void GetArchiveData(string archiveUuid, string archiveFileId, ITapCloudSaveRequestCallback callback)
251
+ {
252
+ EngineBridge.GetInstance().CallHandler(new Command.Builder()
253
+ .Service(TAP_CLOUDSAVE_SERVICE)
254
+ .Method("getArchiveData")
255
+ .Args("archiveUUID", archiveUuid)
256
+ .Args("archiveFileID", archiveFileId)
257
+ .Callback(true)
258
+ .OnceTime(true)
259
+ .CommandBuilder(), (response) =>
260
+ {
261
+ if (callback == null) return;
262
+
263
+ try
264
+ {
265
+ if (response.code != Result.RESULT_SUCCESS || string.IsNullOrEmpty(response.content))
266
+ {
267
+ callback.OnRequestError(-1, "Failed to get archive data: code=" + response.code + "content="+response.content);
268
+ return;
269
+ }
270
+
271
+ var result = JsonConvert.DeserializeObject<TapEngineBridgeResult>(response.content);
272
+ if (result != null && result.code == TapEngineBridgeResult.RESULT_SUCCESS)
273
+ {
274
+ var archiveData = Convert.FromBase64String(result.content);
275
+ if (archiveData != null)
276
+ {
277
+ callback.OnArchiveDataResult(archiveData);
278
+ }
279
+ else
280
+ {
281
+ callback.OnRequestError(-1, "json convert failed: content="+response.content);
282
+ }
283
+ }
284
+ else
285
+ {
286
+ callback.OnRequestError(-1, "Failed to convert base64 data: content="+response.content);
287
+ }
288
+ }
289
+ catch (Exception e)
290
+ {
291
+ callback.OnRequestError(-1, "Failed to get archive data: error=" + e.Message + ", content=" + response.content);
292
+ }
293
+ });
294
+ }
295
+
296
+ public void GetArchiveCover(string archiveUuid, string archiveFileId, ITapCloudSaveRequestCallback callback)
297
+ {
298
+ EngineBridge.GetInstance().CallHandler(new Command.Builder()
299
+ .Service(TAP_CLOUDSAVE_SERVICE)
300
+ .Method("getArchiveCover")
301
+ .Args("archiveUUID", archiveUuid)
302
+ .Args("archiveFileID", archiveFileId)
303
+ .Callback(true)
304
+ .OnceTime(true)
305
+ .CommandBuilder(), (response) =>
306
+ {
307
+ if (callback == null) return;
308
+
309
+ try
310
+ {
311
+ if (response.code != Result.RESULT_SUCCESS || string.IsNullOrEmpty(response.content))
312
+ {
313
+ callback.OnRequestError(-1, "Failed to get archive cover: code="+response.code + "content="+response.content);
314
+ return;
315
+ }
316
+
317
+ var result = JsonConvert.DeserializeObject<TapEngineBridgeResult>(response.content);
318
+ if (result != null && result.code == TapEngineBridgeResult.RESULT_SUCCESS)
319
+ {
320
+ var coverData = Convert.FromBase64String(result.content);
321
+ if (coverData != null)
322
+ {
323
+ callback.OnArchiveCoverResult(coverData);
324
+ }
325
+ else
326
+ {
327
+ callback.OnRequestError(-1, "json convert failed: content="+response.content);
328
+ }
329
+ }
330
+ else
331
+ {
332
+ callback.OnRequestError(-1, "Failed to convert base64 data: content="+response.content);
333
+ }
334
+ }
335
+ catch (Exception e)
336
+ {
337
+ callback.OnRequestError(-1, "Failed to get archive cover: error=" + e.Message + ", content=" + response.content);
338
+ }
339
+ });
340
+ }
341
+ }
342
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 79da8b114001d48f69e82a3f0c6d2c11
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "TapSDK.CloudSave.Mobile.Runtime",
3
+ "references": [
4
+ "GUID:7d5ef2062f3704e1ab74aac0e4d5a1a7",
5
+ "GUID:7c2220358fcd84098b82fbaf24ae7073",
6
+ "GUID:10560023d8780423cb943c7a324b69f2"
7
+ ],
8
+ "includePlatforms": [
9
+ "Android",
10
+ "iOS"
11
+ ],
12
+ "excludePlatforms": [],
13
+ "allowUnsafeCode": false,
14
+ "overrideReferences": false,
15
+ "precompiledReferences": [],
16
+ "autoReferenced": true,
17
+ "defineConstraints": [],
18
+ "versionDefines": [],
19
+ "noEngineReferences": false
20
+ }
@@ -0,0 +1,7 @@
1
+ fileFormatVersion: 2
2
+ guid: 927e1c0059ed141e1be4515d73084906
3
+ AssemblyDefinitionImporter:
4
+ externalObjects: {}
5
+ userData:
6
+ assetBundleName:
7
+ assetBundleVariant:
@@ -0,0 +1,8 @@
1
+ fileFormatVersion: 2
2
+ guid: 191ce881226124faca87a8782a074484
3
+ folderAsset: yes
4
+ DefaultImporter:
5
+ externalObjects: {}
6
+ userData:
7
+ assetBundleName:
8
+ assetBundleVariant:
package/Mobile.meta ADDED
@@ -0,0 +1,8 @@
1
+ fileFormatVersion: 2
2
+ guid: 6483baf7c019c4ed4b52b1f533e260d3
3
+ folderAsset: yes
4
+ DefaultImporter:
5
+ externalObjects: {}
6
+ userData:
7
+ assetBundleName:
8
+ assetBundleVariant:
@@ -0,0 +1,18 @@
1
+ namespace TapSDK.CloudSave.Internal
2
+ {
3
+ public interface ITapCloudSaveBridge
4
+ {
5
+ void RegisterCloudSaveCallback(ITapCloudSaveCallback callback);
6
+
7
+ void CreateArchive(string metadata, string archiveFilePath, string archiveCoverPath,
8
+ ITapCloudSaveRequestCallback callback);
9
+
10
+ void UpdateArchive(string archiveUuid, string metadata, string archiveFilePath, string archiveCoverPath,
11
+ ITapCloudSaveRequestCallback callback);
12
+
13
+ void DeleteArchive(string archiveUuid, ITapCloudSaveRequestCallback callback);
14
+ void GetArchiveList(ITapCloudSaveRequestCallback callback);
15
+ void GetArchiveData(string archiveUuid, string archiveFileId, ITapCloudSaveRequestCallback callback);
16
+ void GetArchiveCover(string archiveUuid, string archiveFileId, ITapCloudSaveRequestCallback callback);
17
+ }
18
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: fbfb7418db40b44ca89156766d74ab02
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,18 @@
1
+ using TapSDK.Core;
2
+ using TapSDK.Core.Internal.Init;
3
+
4
+ namespace TapSDK.CloudSave.Internal.Init
5
+ {
6
+ public sealed class TapCloudSaveInitTask : IInitTask
7
+ {
8
+ public int Order => 18;
9
+
10
+ public void Init(TapTapSdkOptions coreOption)
11
+ {
12
+ }
13
+
14
+ public void Init(TapTapSdkOptions coreOption, TapTapSdkBaseOptions[] otherOptions)
15
+ {
16
+ }
17
+ }
18
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: b3393a0710c6942bf8bf4e082f1e6a4d
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,54 @@
1
+ using TapSDK.Core.Internal.Utils;
2
+
3
+ namespace TapSDK.CloudSave.Internal
4
+ {
5
+ internal static class TapTapCloudSaveInternal
6
+ {
7
+ private static readonly ITapCloudSaveBridge Bridge;
8
+
9
+ static TapTapCloudSaveInternal()
10
+ {
11
+ Bridge = BridgeUtils.CreateBridgeImplementation(typeof(ITapCloudSaveBridge), "TapSDK.CloudSave")
12
+ as ITapCloudSaveBridge;
13
+ }
14
+
15
+ internal static void RegisterCloudSaveCallback(ITapCloudSaveCallback callback)
16
+ {
17
+ Bridge?.RegisterCloudSaveCallback(callback);
18
+ }
19
+
20
+ internal static void CreateArchive(string metadata, string archiveFilePath, string archiveCoverPath,
21
+ ITapCloudSaveRequestCallback callback)
22
+ {
23
+ Bridge?.CreateArchive(metadata, archiveFilePath, archiveCoverPath, callback);
24
+ }
25
+
26
+ internal static void UpdateArchive(string archiveUuid, string metadata, string archiveFilePath,
27
+ string archiveCoverPath, ITapCloudSaveRequestCallback callback)
28
+ {
29
+ Bridge?.UpdateArchive(archiveUuid, metadata, archiveFilePath, archiveCoverPath, callback);
30
+ }
31
+
32
+ internal static void DeleteArchive(string archiveUuid, ITapCloudSaveRequestCallback callback)
33
+ {
34
+ Bridge?.DeleteArchive(archiveUuid, callback);
35
+ }
36
+
37
+ internal static void GetArchiveList(ITapCloudSaveRequestCallback callback)
38
+ {
39
+ Bridge?.GetArchiveList(callback);
40
+ }
41
+
42
+ internal static void GetArchiveData(string archiveUuid, string archiveFileId,
43
+ ITapCloudSaveRequestCallback callback)
44
+ {
45
+ Bridge?.GetArchiveData(archiveUuid, archiveFileId, callback);
46
+ }
47
+
48
+ internal static void GetArchiveCover(string archiveUuid, string archiveFileId,
49
+ ITapCloudSaveRequestCallback callback)
50
+ {
51
+ Bridge?.GetArchiveCover(archiveUuid, archiveFileId, callback);
52
+ }
53
+ }
54
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: aea632d2189e54c069665fff7a853a7d
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,8 @@
1
+ fileFormatVersion: 2
2
+ guid: 571a3256a3a164eb1bf6c44d4cafa68f
3
+ folderAsset: yes
4
+ DefaultImporter:
5
+ externalObjects: {}
6
+ userData:
7
+ assetBundleName:
8
+ assetBundleVariant:
@@ -0,0 +1,34 @@
1
+ using Newtonsoft.Json;
2
+
3
+ namespace TapSDK.CloudSave
4
+ {
5
+ public class ArchiveMetadata
6
+ {
7
+ public ArchiveMetadata(string archiveName, string archiveSummary, string archiveExtra, int archivePlaytime)
8
+ {
9
+ Name = archiveName;
10
+ Summary = archiveSummary;
11
+ Extra = archiveExtra;
12
+ Playtime = archivePlaytime;
13
+ }
14
+
15
+ [JsonProperty("name")] public string Name { get; set; }
16
+ [JsonProperty("summary")] public string Summary { get; set; }
17
+ [JsonProperty("extra")] public string Extra { get; set; }
18
+ [JsonProperty("playtime")] public int Playtime { get; set; }
19
+ }
20
+
21
+ public class ArchiveData
22
+ {
23
+ [JsonProperty("uuid")] public string Uuid { get; set; }
24
+ [JsonProperty("file_id")] public string FileId { get; set; }
25
+ [JsonProperty("name")] public string Name { get; set; }
26
+ [JsonProperty("summary")] public string Summary { get; set; }
27
+ [JsonProperty("extra")] public string Extra { get; set; }
28
+ [JsonProperty("playtime")] public int Playtime { get; set; }
29
+ [JsonProperty("save_size")] public long ArchiveFileSize { get; set; }
30
+ [JsonProperty("cover_size")] public long ArchiveCoverSize { get; set; }
31
+ [JsonProperty("created_time")] public long CreatedTime { get; set; }
32
+ [JsonProperty("modified_time")] public long ModifiedTime { get; set; }
33
+ }
34
+ }
@@ -0,0 +1,3 @@
1
+ fileFormatVersion: 2
2
+ guid: a09cfdb76f8d46ff95b2807fdf747a2b
3
+ timeCreated: 1752031492
@@ -0,0 +1,9 @@
1
+ using System.Collections.Generic;
2
+
3
+ namespace TapSDK.CloudSave
4
+ {
5
+ public interface ITapCloudSaveCallback
6
+ {
7
+ void OnResult(int resultCode);
8
+ }
9
+ }
@@ -0,0 +1,3 @@
1
+ fileFormatVersion: 2
2
+ guid: 042891de61f7467dae46bfd53a17b1ba
3
+ timeCreated: 1752485365
@@ -0,0 +1,15 @@
1
+ using System.Collections.Generic;
2
+
3
+ namespace TapSDK.CloudSave
4
+ {
5
+ public interface ITapCloudSaveRequestCallback
6
+ {
7
+ void OnArchiveCreated(ArchiveData archive);
8
+ void OnArchiveUpdated(ArchiveData archive);
9
+ void OnArchiveDeleted(ArchiveData archive);
10
+ void OnArchiveListResult(List<ArchiveData> archiveList);
11
+ void OnArchiveDataResult(byte[] archiveData);
12
+ void OnArchiveCoverResult(byte[] coverData);
13
+ void OnRequestError(int errorCode, string errorMessage);
14
+ }
15
+ }
@@ -0,0 +1,3 @@
1
+ fileFormatVersion: 2
2
+ guid: 12a6cadfd1774720915a5dfeb0b08cea
3
+ timeCreated: 1752036802
@@ -0,0 +1,35 @@
1
+ using System.Collections.Generic;
2
+
3
+ namespace TapSDK.CloudSave
4
+ {
5
+ public abstract class TapCloudSaveRequestCallbackAdapter : ITapCloudSaveRequestCallback
6
+ {
7
+ public void OnArchiveCreated(ArchiveData archive)
8
+ {
9
+ }
10
+
11
+ public void OnArchiveUpdated(ArchiveData archive)
12
+ {
13
+ }
14
+
15
+ public void OnArchiveDeleted(ArchiveData archive)
16
+ {
17
+ }
18
+
19
+ public void OnArchiveListResult(List<ArchiveData> archiveList)
20
+ {
21
+ }
22
+
23
+ public void OnArchiveDataResult(byte[] archiveData)
24
+ {
25
+ }
26
+
27
+ public void OnArchiveCoverResult(byte[] coverData)
28
+ {
29
+ }
30
+
31
+ public void OnRequestError(int errorCode, string errorMessage)
32
+ {
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,3 @@
1
+ fileFormatVersion: 2
2
+ guid: c69252a7434f4ea1884671247bec1fbb
3
+ timeCreated: 1752044522
@@ -0,0 +1,46 @@
1
+ using TapSDK.CloudSave.Internal;
2
+
3
+ namespace TapSDK.CloudSave
4
+ {
5
+ public class TapTapCloudSave
6
+ {
7
+ public static void RegisterCloudSaveCallback(ITapCloudSaveCallback callback)
8
+ {
9
+ TapTapCloudSaveInternal.RegisterCloudSaveCallback(callback);
10
+ }
11
+
12
+ public static void CreateArchive(string metadata, string archiveFilePath, string archiveCoverPath,
13
+ ITapCloudSaveRequestCallback callback)
14
+ {
15
+ TapTapCloudSaveInternal.CreateArchive(metadata, archiveFilePath, archiveCoverPath, callback);
16
+ }
17
+
18
+ public static void UpdateArchive(string archiveUuid, string metadata, string archiveFilePath,
19
+ string archiveCoverPath, ITapCloudSaveRequestCallback callback)
20
+ {
21
+ TapTapCloudSaveInternal.UpdateArchive(archiveUuid, metadata, archiveFilePath, archiveCoverPath, callback);
22
+ }
23
+
24
+ public static void DeleteArchive(string archiveUuid, ITapCloudSaveRequestCallback callback)
25
+ {
26
+ TapTapCloudSaveInternal.DeleteArchive(archiveUuid, callback);
27
+ }
28
+
29
+ public static void GetArchiveList(ITapCloudSaveRequestCallback callback)
30
+ {
31
+ TapTapCloudSaveInternal.GetArchiveList(callback);
32
+ }
33
+
34
+ public static void GetArchiveData(string archiveUuid, string archiveFileId,
35
+ ITapCloudSaveRequestCallback callback)
36
+ {
37
+ TapTapCloudSaveInternal.GetArchiveData(archiveUuid, archiveFileId, callback);
38
+ }
39
+
40
+ public static void GetArchiveCover(string archiveUuid, string archiveFileId,
41
+ ITapCloudSaveRequestCallback callback)
42
+ {
43
+ TapTapCloudSaveInternal.GetArchiveCover(archiveUuid, archiveFileId, callback);
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,11 @@
1
+ fileFormatVersion: 2
2
+ guid: 87b60846072124753a92b74ea16f6578
3
+ MonoImporter:
4
+ externalObjects: {}
5
+ serializedVersion: 2
6
+ defaultReferences: []
7
+ executionOrder: 0
8
+ icon: {instanceID: 0}
9
+ userData:
10
+ assetBundleName:
11
+ assetBundleVariant:
@@ -0,0 +1,8 @@
1
+ fileFormatVersion: 2
2
+ guid: 988c33dd4ff2943f191c0e7780e73212
3
+ folderAsset: yes
4
+ DefaultImporter:
5
+ externalObjects: {}
6
+ userData:
7
+ assetBundleName:
8
+ assetBundleVariant:
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "TapSDK.CloudSave.Runtime",
3
+ "references": [
4
+ "GUID:7d5ef2062f3704e1ab74aac0e4d5a1a7"
5
+ ],
6
+ "includePlatforms": [],
7
+ "excludePlatforms": [],
8
+ "allowUnsafeCode": false,
9
+ "overrideReferences": false,
10
+ "precompiledReferences": [],
11
+ "autoReferenced": true,
12
+ "defineConstraints": [],
13
+ "versionDefines": [],
14
+ "noEngineReferences": false
15
+ }
@@ -0,0 +1,7 @@
1
+ fileFormatVersion: 2
2
+ guid: 7c2220358fcd84098b82fbaf24ae7073
3
+ AssemblyDefinitionImporter:
4
+ externalObjects: {}
5
+ userData:
6
+ assetBundleName:
7
+ assetBundleVariant:
package/Runtime.meta ADDED
@@ -0,0 +1,8 @@
1
+ fileFormatVersion: 2
2
+ guid: ce7bca12c04134ae5bf19fe6be232eb7
3
+ folderAsset: yes
4
+ DefaultImporter:
5
+ externalObjects: {}
6
+ userData:
7
+ assetBundleName:
8
+ assetBundleVariant:
package/link.xml ADDED
@@ -0,0 +1,3 @@
1
+ <linker>
2
+ <assembly fullname="TapSDK.CloudSave.Mobile.Runtime" preserve="all" />
3
+ </linker>
package/link.xml.meta ADDED
@@ -0,0 +1,7 @@
1
+ fileFormatVersion: 2
2
+ guid: 7de12090f466f44af8cddecab64462a1
3
+ TextScriptImporter:
4
+ externalObjects: {}
5
+ userData:
6
+ assetBundleName:
7
+ assetBundleVariant:
package/package.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "com.taptap.sdk.cloudsave",
3
+ "displayName": "TapTapSDK CloudSave",
4
+ "description": "TapTapSDK CloudSave",
5
+ "version": "4.8.0-beta.1",
6
+ "unity": "2019.4",
7
+ "license": "MIT",
8
+ "dependencies": {
9
+ "com.taptap.sdk.core": "4.8.0-beta.1",
10
+ "com.taptap.sdk.login": "4.8.0-beta.1"
11
+ }
12
+ }
@@ -0,0 +1,7 @@
1
+ fileFormatVersion: 2
2
+ guid: f4f2e0972000e4c88a74e83b9849a1d7
3
+ TextScriptImporter:
4
+ externalObjects: {}
5
+ userData:
6
+ assetBundleName:
7
+ assetBundleVariant: