123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- 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=修改为AndroidX;2=修改为非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;
- }
- }
|