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.
- package/Mobile/Editor/NativeDependencies.xml +9 -0
- package/Mobile/Editor/NativeDependencies.xml.meta +3 -0
- package/Mobile/Editor/TapCloudSaveMobileProcessBuild.cs +19 -0
- package/Mobile/Editor/TapCloudSaveMobileProcessBuild.cs.meta +11 -0
- package/Mobile/Editor/TapSDK.CloudSave.Mobile.Editor.asmdef +17 -0
- package/Mobile/Editor/TapSDK.CloudSave.Mobile.Editor.asmdef.meta +7 -0
- package/Mobile/Editor.meta +8 -0
- package/Mobile/Runtime/TapCloudSaveBridge.cs +342 -0
- package/Mobile/Runtime/TapCloudSaveBridge.cs.meta +11 -0
- package/Mobile/Runtime/TapSDK.CloudSave.Mobile.Runtime.asmdef +20 -0
- package/Mobile/Runtime/TapSDK.CloudSave.Mobile.Runtime.asmdef.meta +7 -0
- package/Mobile/Runtime.meta +8 -0
- package/Mobile.meta +8 -0
- package/Runtime/Internal/ITapCloudSaveBridge.cs +18 -0
- package/Runtime/Internal/ITapCloudSaveBridge.cs.meta +11 -0
- package/Runtime/Internal/TapCloudSaveInitTask.cs +18 -0
- package/Runtime/Internal/TapCloudSaveInitTask.cs.meta +11 -0
- package/Runtime/Internal/TapTapCloudSaveInternal.cs +54 -0
- package/Runtime/Internal/TapTapCloudSaveInternal.cs.meta +11 -0
- package/Runtime/Internal.meta +8 -0
- package/Runtime/Public/ArchiveData.cs +34 -0
- package/Runtime/Public/ArchiveData.cs.meta +3 -0
- package/Runtime/Public/ITapCloudSaveCallback.cs +9 -0
- package/Runtime/Public/ITapCloudSaveCallback.cs.meta +3 -0
- package/Runtime/Public/ITapCloudSaveRequestCallback.cs +15 -0
- package/Runtime/Public/ITapCloudSaveRequestCallback.cs.meta +3 -0
- package/Runtime/Public/TapCloudSaveRequestCallbackAdapter.cs +35 -0
- package/Runtime/Public/TapCloudSaveRequestCallbackAdapter.cs.meta +3 -0
- package/Runtime/Public/TapTapCloudSave.cs +46 -0
- package/Runtime/Public/TapTapCloudSave.cs.meta +11 -0
- package/Runtime/Public.meta +8 -0
- package/Runtime/TapSDK.CloudSave.Runtime.asmdef +15 -0
- package/Runtime/TapSDK.CloudSave.Runtime.asmdef.meta +7 -0
- package/Runtime.meta +8 -0
- package/link.xml +3 -0
- package/link.xml.meta +7 -0
- package/package.json +12 -0
- 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,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,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,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,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
|
+
}
|
package/Mobile.meta
ADDED
|
@@ -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,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,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,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,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,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,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,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
|
+
}
|
package/Runtime.meta
ADDED
package/link.xml
ADDED
package/link.xml.meta
ADDED
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
|
+
}
|