public static ApkAvailabilityStatus ToApkAvailabilityStatus(this ApiAvailability apiStatus) { switch (apiStatus) { case ApiAvailability.UnknownError: return(ApkAvailabilityStatus.UnknownError); case ApiAvailability.UnknownChecking: return(ApkAvailabilityStatus.UnknownChecking); case ApiAvailability.UnknownTimedOut: return(ApkAvailabilityStatus.UnknownTimedOut); case ApiAvailability.UnsupportedDeviceNotCapable: return(ApkAvailabilityStatus.UnsupportedDeviceNotCapable); case ApiAvailability.SupportedNotInstalled: return(ApkAvailabilityStatus.SupportedNotInstalled); case ApiAvailability.SupportedApkTooOld: return(ApkAvailabilityStatus.SupportedApkTooOld); case ApiAvailability.SupportedInstalled: return(ApkAvailabilityStatus.SupportedInstalled); default: UnityEngine.Debug.LogErrorFormat("Unexpected ApiAvailability status {0}", apiStatus); return(ApkAvailabilityStatus.UnknownError); } }
private static string SelectFramework(ApiAvailability availability, string selectedFramework) { // Let's first reset the selected framework in case the current API doesn't support it if (!availability.Frameworks.Any(fx => string.Equals(fx.Framework.GetShortFolderName(), selectedFramework, StringComparison.OrdinalIgnoreCase))) { selectedFramework = null; } // First we try to pick the highest .NET Core framework selectedFramework ??= availability.Frameworks.Where(fx => fx.Framework.Framework == ".NETCoreApp") .OrderByDescending(fx => fx.Framework.Version) .ThenBy(fx => fx.Framework.HasPlatform) .Select(fx => fx.Framework.GetShortFolderName()) .FirstOrDefault(); // If we couldn't find any, pick the highest version of any framework selectedFramework ??= availability.Frameworks.OrderBy(f => f.Framework.Framework) .ThenByDescending(f => f.Framework.Version) .Select(fx => fx.Framework.GetShortFolderName()) .FirstOrDefault(); return(selectedFramework); }
private static void _OnCheckApkAvailabilityResultTrampoline( ApiAvailability status, IntPtr context) { Instance._OnCheckApkAvailabilityResult(status.ToApkAvailabilityStatus()); }