SDK_UnityMoney/Assets/ThinkupTpnPlugin/Script/IntegrationManager/Editor/ATPluginLocalDataModel.cs

220 lines
6.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Xml.Linq;
using UnityEditor;
using UnityEngine;
using UnityEngine.Networking;
namespace AnyThink.Scripts.IntegrationManager.Editor
{
[Serializable]
public class PluginData
{
public string pluginVersion; //插件版本
public string[] androidVersions;
public string[] iosVersions;
public int country = ATConfig.getDefCountry(); //默认是1=china
public Network anyThink;
public Network[] mediatedNetworks;
public PluginSettingData pluginSettingData;
public NetworkRequestParams requestParams;
}
//请求network参数
public class NetworkRequestParams {
public int os;
public string androidVersion;
public string iosVersion;
}
[Serializable]
public class Network : IComparable<Network>
{
//
// Sample network data:
//
// {
// "Name": "adcolony",
// "DisplayName": "AdColony",
// "DownloadUrl": "https://bintray.com/applovin/Unity-Mediation-Packages/download_file?file_path=AppLovin-AdColony-Adapters-Android-3.3.10.1-iOS-3.3.7.2.unitypackage",
// "PluginFileName": "AppLovin-AdColony-Adapters-Android-3.3.10.1-iOS-3.3.7.2.unitypackage",
// "DependenciesFilePath": "MaxSdk/Mediation/AdColony/Editor/Dependencies.xml",
// "LatestVersions" : {
// "Unity": "android_3.3.10.1_ios_3.3.7.2",
// "Android": "3.3.10.1",
// "Ios": "3.3.7.2"
// }
// }
//
public string Name;
public string DisplayName;
public string AndroidDownloadUrl;
public string iOSDownloadloadUrl;
// public string DependenciesFilePath;
public string PluginFileName;
public int Country;
public Versions LatestVersions; //最新版本
public Versions CurrentVersions; //当前版本
[NonSerialized] public VersionComparisonResult CurrentToLatestVersionComparisonResult = VersionComparisonResult.Equal;
// [NonSerialized] public bool RequiresUpdate = CurrentToLatestVersionComparisonResult == VersionComparisonResult.Lesser;
public bool isVersionEmpty() {
if (LatestVersions != null) {
ATLog.log("isVersionEmpty() >>> name: " + Name + " android: " + LatestVersions.Android + " ios: " + LatestVersions.Ios);
return string.IsNullOrEmpty(LatestVersions.Android) && string.IsNullOrEmpty(LatestVersions.Ios);
}
return false;
}
public bool isReqiureUpdate()
{
return CurrentToLatestVersionComparisonResult == VersionComparisonResult.Lesser;
}
public int CompareTo(Network other)
{
return this.DisplayName.CompareTo(other.DisplayName);
}
public string ToString() {
return DisplayName + "-" + AndroidDownloadUrl + "-" + iOSDownloadloadUrl + "-" + Country;
}
}
/// <summary>
/// A helper data class used to get current versions from Dependency.xml files.
/// </summary>
[Serializable]
public class Versions
{
public string Unity;
public string Android;
public string Ios;
public override bool Equals(object value)
{
var versions = value as Versions;
return versions != null
&& (Unity == null || Unity.Equals(versions.Unity))
&& (Android == null || Android.Equals(versions.Android))
&& (Ios == null || Ios.Equals(versions.Ios));
}
public bool HasEqualSdkVersions(Versions versions)
{
return versions != null && versions.Android == Android && versions.Ios == Ios;
}
public override int GetHashCode()
{
return new { Unity, Android, Ios }.GetHashCode();
}
public Versions clone()
{
Versions cloneObj = new Versions();
cloneObj.Android = Android;
cloneObj.Ios = Ios;
cloneObj.Unity = Unity;
return cloneObj;
}
}
public enum VersionComparisonResult
{
Lesser = -1,
Equal = 0,
Greater = 1
}
//存在本地插件设置数据并序列化为json文件
[Serializable]
public class PluginSettingData
{
public int curCountry = ATConfig.getDefCountry(); //当前选择的国家
public CountrySettingData china = new CountrySettingData(ATConfig.CHINA_COUNTRY); //国内地区
public CountrySettingData nonchina = new CountrySettingData(ATConfig.NONCHINA_COUNTRY); //海外地区
public CountrySettingData getCountrySettingData() {
if (curCountry == ATConfig.CHINA_COUNTRY) {
return china;
} else {
return nonchina;
}
}
//Android 是否同时安装了国内海外地区
public bool isBothInstallAndroid() {
return !string.IsNullOrEmpty(china.android_version) && !string.IsNullOrEmpty(nonchina.android_version);
}
//iOS 是否同时安装了国内海外地区
public bool isBothInstallIOS() {
return !string.IsNullOrEmpty(china.ios_version) && !string.IsNullOrEmpty(nonchina.ios_version);
}
}
//已安装的sdk版本
[Serializable]
public class CountrySettingData
{
public string android_version; //当前已安装Android sdk的版本号
public string ios_version; //当前已安装的iOS sdk的版本号
public int androidXSetting = 0; //当前的AndroidX设置,0=default; 1=修改为AndroidX2=修改为非AndroidX
public int country;
public string android_admob_app_id;
public string ios_admob_app_id;
public CountrySettingData(int country) {
this.country = country;
}
public string getAdmobAppId(int os) {
if (os == ATConfig.OS_ANDROID) {
return android_admob_app_id;
} else {
return ios_admob_app_id;
}
}
public void setAdmobAppId(string appId, int os) {
if (os == ATConfig.OS_ANDROID) {
android_admob_app_id = appId;
} else {
ios_admob_app_id = appId;
}
}
}
//存储在本地的Network json数据
[Serializable]
public class NetworkLocalData
{
public string name;
public string version;
public int country;
public string path;
}
[Serializable]
public class HotfixPluginData
{
public string plugin_version;
public string hot_fix_version;
public string download_url;
public int status;
public string file_name;
}
}