220 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			220 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			C#
		
	
	
	
| 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;
 | ||
|     }
 | ||
| } |