ProjectDDD/Packages/com.singularitygroup.hotreload/Editor/Window/GUI/Options/AllowAndroidAppToMakeHttpRequestsOption.cs

48 lines
1.8 KiB
C#
Raw Normal View History

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);
}
}
}