diff --git a/Assets/Cryville/Common/Unity/UrlOpener.cs b/Assets/Cryville/Common/Unity/UrlOpener.cs new file mode 100644 index 0000000..3d0500e --- /dev/null +++ b/Assets/Cryville/Common/Unity/UrlOpener.cs @@ -0,0 +1,13 @@ +namespace Cryville.Common.Unity { + public static class UrlOpener { + public static void Open(string url) { +#if UNITY_STANDALONE_WIN || UNITY_EDITOR_WIN + System.Diagnostics.Process.Start(url); +#elif UNITY_ANDROID + new UnityEngine.AndroidJavaClass("world.cryville.common.unity.UrlOpener").CallStatic("open", new object[] { url }); +#else +#error Unknown platform. +#endif + } + } +} diff --git a/Assets/Cryville/Common/Unity/UrlOpener.cs.meta b/Assets/Cryville/Common/Unity/UrlOpener.cs.meta new file mode 100644 index 0000000..d58f1d2 --- /dev/null +++ b/Assets/Cryville/Common/Unity/UrlOpener.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c827ee181de8c51499777e5a822981b8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cryville/Common/Unity/UrlOpener.java b/Assets/Cryville/Common/Unity/UrlOpener.java new file mode 100644 index 0000000..159ced6 --- /dev/null +++ b/Assets/Cryville/Common/Unity/UrlOpener.java @@ -0,0 +1,17 @@ +package world.cryville.common.unity; + +import android.content.Intent; +import android.net.Uri; +import com.unity3d.player.UnityPlayer; +import com.unity3d.player.UnityPlayerActivity; + +public final class UrlOpener { + private UrlOpener() { } + + static UnityPlayerActivity activity; + + public static void open(String url) { + if (activity == null) activity = (UnityPlayerActivity)UnityPlayer.currentActivity; + activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url))); + } +} \ No newline at end of file diff --git a/Assets/Cryville/Common/Unity/UrlOpener.java.meta b/Assets/Cryville/Common/Unity/UrlOpener.java.meta new file mode 100644 index 0000000..6dea58b --- /dev/null +++ b/Assets/Cryville/Common/Unity/UrlOpener.java.meta @@ -0,0 +1,32 @@ +fileFormatVersion: 2 +guid: e2d08ba79acb0564b9802b57dbc2f8d3 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Android: Android + second: + enabled: 1 + settings: {} + - first: + Any: + second: + enabled: 0 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Cryville/Crtr/Network/UpdateChecker.cs b/Assets/Cryville/Crtr/Network/UpdateChecker.cs index 56927bb..6920409 100644 --- a/Assets/Cryville/Crtr/Network/UpdateChecker.cs +++ b/Assets/Cryville/Crtr/Network/UpdateChecker.cs @@ -77,7 +77,10 @@ namespace Cryville.Crtr.Network { } } if (totalDiffSize == 0 || totalDiffSize >= fullPackage.size) { - Dialog.ShowAndWait(string.Format("A new version is available: {0}\nYou have to download the full package.\nOpen the download link now?", latestVersion.name), "Yes", "No"); + // TODO Check if external + if (Dialog.ShowAndWait(string.Format("A new version is available: {0}\nYou have to download the full package.\nOpen the download link now?", latestVersion.name), "Yes", "No") == 0) { + UrlOpener.Open(fullPackage.url); + } } else { Dialog.ShowAndWait(string.Format("A new version is available: {0}\nDo you want to update?", latestVersion.name), "Yes", "No");