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