48 lines
1.8 KiB
C#
48 lines
1.8 KiB
C#
|
using UnityEditor;
|
|||
|
|
|||
|
namespace SingularityGroup.HotReload.Editor {
|
|||
|
internal class AllowAndroidAppToMakeHttpRequestsOption : ProjectOptionBase {
|
|||
|
public override string ShortSummary {
|
|||
|
get {
|
|||
|
return "Allow app to make HTTP requests";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public override string Summary => ShortSummary;
|
|||
|
|
|||
|
public override bool GetValue(SerializedObject so) {
|
|||
|
#if UNITY_2022_1_OR_NEWER
|
|||
|
// use PlayerSettings as the source of truth
|
|||
|
return PlayerSettings.insecureHttpOption != InsecureHttpOption.NotAllowed;
|
|||
|
#else
|
|||
|
return GetProperty(so).boolValue;
|
|||
|
#endif
|
|||
|
}
|
|||
|
|
|||
|
public override string ObjectPropertyName =>
|
|||
|
nameof(HotReloadSettingsObject.AllowAndroidAppToMakeHttpRequests);
|
|||
|
|
|||
|
public override void SetValue(SerializedObject so, bool value) {
|
|||
|
base.SetValue(so, value);
|
|||
|
|
|||
|
// Enabling on Unity 2022 or newer → set the Unity option to ‘Development Builds only’
|
|||
|
#if UNITY_2022_1_OR_NEWER
|
|||
|
var notAllowed = PlayerSettings.insecureHttpOption == InsecureHttpOption.NotAllowed;
|
|||
|
if (value) {
|
|||
|
// user chose to enable it
|
|||
|
if (notAllowed) {
|
|||
|
PlayerSettings.insecureHttpOption = InsecureHttpOption.DevelopmentOnly;
|
|||
|
}
|
|||
|
} else {
|
|||
|
// user chose to disable it
|
|||
|
PlayerSettings.insecureHttpOption = InsecureHttpOption.NotAllowed;
|
|||
|
}
|
|||
|
#endif
|
|||
|
}
|
|||
|
|
|||
|
public override void InnerOnGUI(SerializedObject so) {
|
|||
|
var description = "For Hot Reload to work on-device, please allow HTTP requests";
|
|||
|
EditorGUILayout.LabelField(description, HotReloadWindowStyles.WrapStyle);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|