258 lines
9.0 KiB
C#
258 lines
9.0 KiB
C#
|
|
/*******************************************************************************
|
|||
|
|
Copyright © 2015-2022 PICO Technology Co., Ltd.All rights reserved.
|
|||
|
|
|
|||
|
|
NOTICE:All information contained herein is, and remains the property of
|
|||
|
|
PICO Technology Co., Ltd. The intellectual and technical concepts
|
|||
|
|
contained herein are proprietary to PICO Technology Co., Ltd. and may be
|
|||
|
|
covered by patents, patents in process, and are protected by trade secret or
|
|||
|
|
copyright law. Dissemination of this information or reproduction of this
|
|||
|
|
material is strictly forbidden unless prior written permission is obtained from
|
|||
|
|
PICO Technology Co., Ltd.
|
|||
|
|
*******************************************************************************/
|
|||
|
|
|
|||
|
|
using System;
|
|||
|
|
|
|||
|
|
namespace Pico.Platform.Models
|
|||
|
|
{
|
|||
|
|
public static class DownloadStatus
|
|||
|
|
{
|
|||
|
|
public const string Downloaded = "downloaded";
|
|||
|
|
public const string Available = "available";
|
|||
|
|
public const string InProgress = "in-progress";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Constants indicates whether the user purchased the in-app product.
|
|||
|
|
/// </summary>
|
|||
|
|
public static class IapStatus
|
|||
|
|
{
|
|||
|
|
/// Purchased
|
|||
|
|
public const string Entitled = "entitled";
|
|||
|
|
|
|||
|
|
/// Not purchased.
|
|||
|
|
public const string NotEntitled = "not-entitled";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary> Indicates where the DLC file is displayed.</summary>
|
|||
|
|
public static class AssetType
|
|||
|
|
{
|
|||
|
|
/// The DLC file is displayed in the PICO Store and the app.
|
|||
|
|
public const string Store = "store";
|
|||
|
|
|
|||
|
|
/// The DLC file is displayed in the app only.
|
|||
|
|
public const string Default = "default";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public class AssetDetails
|
|||
|
|
{
|
|||
|
|
/// The unique identifier of DLC file.
|
|||
|
|
public ulong AssetId;
|
|||
|
|
|
|||
|
|
/** Some DLC files can be displayed in the PICO Store. Now it has two values: `default` or `store`.
|
|||
|
|
* You can refer to \ref AssetType for details.
|
|||
|
|
*/
|
|||
|
|
public string AssetType;
|
|||
|
|
|
|||
|
|
/// One of `downloaded`, `available`, and `in-progress`. You can refer to \ref DownloadStatus for details.
|
|||
|
|
public string DownloadStatus;
|
|||
|
|
|
|||
|
|
/// The path to the downloaded DLC file. For a non-downloaded DLC file, this field will be empty.
|
|||
|
|
public string Filepath;
|
|||
|
|
|
|||
|
|
/// The meta info of the DLC file.
|
|||
|
|
public string Metadata;
|
|||
|
|
|
|||
|
|
/// The name of the DLC file.
|
|||
|
|
public string Filename;
|
|||
|
|
|
|||
|
|
/// The version of the DLC file.
|
|||
|
|
public int Version;
|
|||
|
|
|
|||
|
|
/// One of `entitled`, `not-entitled`. You can refer to \ref IapStatus for details.
|
|||
|
|
public string IapStatus;
|
|||
|
|
|
|||
|
|
/// The SKU of the in-app product that the DLC file associated with.
|
|||
|
|
public string IapSku;
|
|||
|
|
|
|||
|
|
/// The name of the in-app product that the DLC fiel associated with.
|
|||
|
|
public string IapName;
|
|||
|
|
|
|||
|
|
/// The price of this DLC file.
|
|||
|
|
public string IapPrice;
|
|||
|
|
|
|||
|
|
/// The currency required for purchasing the DLC file.
|
|||
|
|
public string IapCurrency;
|
|||
|
|
|
|||
|
|
/// The description of the in-app product that the DLC file associated with.
|
|||
|
|
public string IapDescription;
|
|||
|
|
|
|||
|
|
/// The icon of the in-app product that the DLC file associated with.
|
|||
|
|
public string IapIcon;
|
|||
|
|
|
|||
|
|
public AssetDetails(IntPtr o)
|
|||
|
|
{
|
|||
|
|
AssetId = CLIB.ppf_AssetDetails_GetAssetId(o);
|
|||
|
|
AssetType = CLIB.ppf_AssetDetails_GetAssetType(o);
|
|||
|
|
DownloadStatus = CLIB.ppf_AssetDetails_GetDownloadStatus(o);
|
|||
|
|
IapStatus = CLIB.ppf_AssetDetails_GetIapStatus(o);
|
|||
|
|
Filepath = CLIB.ppf_AssetDetails_GetFilepath(o);
|
|||
|
|
Metadata = CLIB.ppf_AssetDetails_GetMetadata(o);
|
|||
|
|
Filename = CLIB.ppf_AssetDetails_GetFilename(o);
|
|||
|
|
Version = CLIB.ppf_AssetDetails_GetVersion(o);
|
|||
|
|
IapSku = CLIB.ppf_AssetDetails_GetIapSku(o);
|
|||
|
|
IapName = CLIB.ppf_AssetDetails_GetIapName(o);
|
|||
|
|
IapPrice = CLIB.ppf_AssetDetails_GetIapPrice(o);
|
|||
|
|
IapCurrency = CLIB.ppf_AssetDetails_GetIapCurrency(o);
|
|||
|
|
IapDescription = CLIB.ppf_AssetDetails_GetIapDescription(o);
|
|||
|
|
IapIcon = CLIB.ppf_AssetDetails_GetIapIcon(o);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Each element is \ref AssetDetails
|
|||
|
|
/// </summary>
|
|||
|
|
public class AssetDetailsList : MessageArray<AssetDetails>
|
|||
|
|
{
|
|||
|
|
public AssetDetailsList(IntPtr a)
|
|||
|
|
{
|
|||
|
|
var count = (int) CLIB.ppf_AssetDetailsArray_GetSize(a);
|
|||
|
|
this.Capacity = count;
|
|||
|
|
for (int i = 0; i < count; i++)
|
|||
|
|
{
|
|||
|
|
this.Add(new AssetDetails(CLIB.ppf_AssetDetailsArray_GetElement(a, (UIntPtr) i)));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
NextPageParam = CLIB.ppf_AssetDetailsArray_GetNextPageParam(a);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// If the downloaded DLC file is different from the original one,
|
|||
|
|
/// the DLC file will be automatically removed, and the app will receive a notification.
|
|||
|
|
/// </summary>
|
|||
|
|
public class AssetFileDeleteForSafety
|
|||
|
|
{
|
|||
|
|
/// The ID of the DLC file.
|
|||
|
|
public readonly ulong AssetId;
|
|||
|
|
|
|||
|
|
/// The description for why this asset file is deleted.
|
|||
|
|
public readonly string Reason;
|
|||
|
|
|
|||
|
|
public AssetFileDeleteForSafety(IntPtr o)
|
|||
|
|
{
|
|||
|
|
AssetId = CLIB.ppf_AssetFileDeleteForSafety_GetAssetId(o);
|
|||
|
|
Reason = CLIB.ppf_AssetFileDeleteForSafety_GetReason(o);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// The callback for \ref AssetFileService.DeleteById and \ref AssetFileService.DeleteByName.
|
|||
|
|
/// </summary>
|
|||
|
|
public class AssetFileDeleteResult
|
|||
|
|
{
|
|||
|
|
/// The path to the DLC file.
|
|||
|
|
public readonly string Filepath;
|
|||
|
|
|
|||
|
|
/// Whether the DLC file is deleted successfully.
|
|||
|
|
public readonly bool Success;
|
|||
|
|
|
|||
|
|
/// The ID of the DLC file.
|
|||
|
|
public readonly ulong AssetId;
|
|||
|
|
|
|||
|
|
public AssetFileDeleteResult(IntPtr o)
|
|||
|
|
{
|
|||
|
|
Filepath = CLIB.ppf_AssetFileDeleteResult_GetFilepath(o);
|
|||
|
|
Success = CLIB.ppf_AssetFileDeleteResult_GetSuccess(o);
|
|||
|
|
AssetId = CLIB.ppf_AssetFileDeleteResult_GetAssetId(o);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>Indicates whether the download of the DLC file is successfully canceled.</summary>
|
|||
|
|
public class AssetFileDownloadCancelResult
|
|||
|
|
{
|
|||
|
|
/// The path to the DLC file.
|
|||
|
|
public readonly string Filepath;
|
|||
|
|
|
|||
|
|
/// Whether the download is successfully canceled.
|
|||
|
|
public readonly bool Success;
|
|||
|
|
|
|||
|
|
/// The ID of the DLC file.
|
|||
|
|
public readonly ulong AssetId;
|
|||
|
|
|
|||
|
|
public AssetFileDownloadCancelResult(IntPtr o)
|
|||
|
|
{
|
|||
|
|
Filepath = CLIB.ppf_AssetFileDownloadCancelResult_GetFilepath(o);
|
|||
|
|
Success = CLIB.ppf_AssetFileDownloadCancelResult_GetSuccess(o);
|
|||
|
|
AssetId = CLIB.ppf_AssetFileDownloadCancelResult_GetAssetId(o);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>The result returned after calling \ref AssetFileService.DownloadById or \ref AssetFileService.DownloadByName.</summary>
|
|||
|
|
public class AssetFileDownloadResult
|
|||
|
|
{
|
|||
|
|
/// The ID of the DLC file.
|
|||
|
|
public readonly ulong AssetId;
|
|||
|
|
|
|||
|
|
/// The path to the DLC file.
|
|||
|
|
public readonly string Filepath;
|
|||
|
|
|
|||
|
|
public AssetFileDownloadResult(IntPtr o)
|
|||
|
|
{
|
|||
|
|
AssetId = CLIB.ppf_AssetFileDownloadResult_GetAssetId(o);
|
|||
|
|
Filepath = CLIB.ppf_AssetFileDownloadResult_GetFilepath(o);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// You will receive this message periodically once you call \ref AssetFileService.DownloadById
|
|||
|
|
/// or \ref AssetFileService.DownloadByName.
|
|||
|
|
/// </summary>
|
|||
|
|
public class AssetFileDownloadUpdate
|
|||
|
|
{
|
|||
|
|
/// The ID of the DLC file.
|
|||
|
|
public readonly ulong AssetId;
|
|||
|
|
|
|||
|
|
/// The total bytes of the DLC file.
|
|||
|
|
public readonly ulong BytesTotal;
|
|||
|
|
|
|||
|
|
/// The transferred bytes of the DLC file.
|
|||
|
|
public readonly long BytesTransferred;
|
|||
|
|
|
|||
|
|
/// The download status of the DLC file.
|
|||
|
|
public readonly AssetFileDownloadCompleteStatus CompleteStatus;
|
|||
|
|
|
|||
|
|
public AssetFileDownloadUpdate(IntPtr o)
|
|||
|
|
{
|
|||
|
|
AssetId = CLIB.ppf_AssetFileDownloadUpdate_GetAssetId(o);
|
|||
|
|
BytesTotal = CLIB.ppf_AssetFileDownloadUpdate_GetBytesTotal(o);
|
|||
|
|
BytesTransferred = CLIB.ppf_AssetFileDownloadUpdate_GetBytesTransferred(o);
|
|||
|
|
CompleteStatus = CLIB.ppf_AssetFileDownloadUpdate_GetCompleteStatus(o);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// The callback for \ref AssetFileService.StatusById or \ref AssetFileService.StatusByName.
|
|||
|
|
/// </summary>
|
|||
|
|
public class AssetStatus
|
|||
|
|
{
|
|||
|
|
/// The ID of the DLC file.
|
|||
|
|
public readonly ulong AssetId;
|
|||
|
|
|
|||
|
|
/// The name of the DLC file.
|
|||
|
|
public readonly string Filename;
|
|||
|
|
|
|||
|
|
/// The path to the DLC file.
|
|||
|
|
public readonly string Filepath;
|
|||
|
|
|
|||
|
|
/// The download status of the DLC file. You can refer to \ref DownloadStatus for details.
|
|||
|
|
public readonly string DownloadStatus;
|
|||
|
|
|
|||
|
|
public AssetStatus(IntPtr o)
|
|||
|
|
{
|
|||
|
|
AssetId = CLIB.ppf_AssetStatus_GetAssetId(o);
|
|||
|
|
Filename = CLIB.ppf_AssetStatus_GetFilename(o);
|
|||
|
|
Filepath = CLIB.ppf_AssetStatus_GetFilepath(o);
|
|||
|
|
DownloadStatus = CLIB.ppf_AssetStatus_GetDownloadStatus(o);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|