2025-07-08 10:46:31 +00:00
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|