Skip to content

Commit 55ab55e

Browse files
committed
feat: add Shared instance for toolkit & utility
1 parent ca4abb6 commit 55ab55e

8 files changed

Lines changed: 24 additions & 13 deletions

File tree

src/MaaFramework.Binding.Native/MaaTasker.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ internal MaaTasker(MaaTaskerHandle handle)
3535
Resource = new MaaResource(MaaTaskerGetResource(handle));
3636
Controller = new MaaController(MaaTaskerGetController(handle));
3737
DisposeOptions = DisposeOptions.None;
38-
Toolkit = new MaaToolkit();
39-
Utility = new MaaUtility();
38+
Toolkit = MaaToolkit.Shared;
39+
Utility = MaaUtility.Shared;
4040
}
4141

4242
/// <summary>
@@ -54,8 +54,10 @@ public MaaTasker(bool toolkitInit = false)
5454
throw new InvalidOperationException($"This {nameof(MaaTasker)} already added to {nameof(Instances)}.");
5555
SetHandle(handle, needReleased: true);
5656

57-
Toolkit = new MaaToolkit(toolkitInit);
58-
Utility = new MaaUtility();
57+
Toolkit = MaaToolkit.Shared;
58+
Utility = MaaUtility.Shared;
59+
if (toolkitInit)
60+
_ = Toolkit.Config.InitOption().ThrowIfFalse();
5961
}
6062

6163
/// <param name="controller">The controller.</param>

src/MaaFramework.Binding.Native/MaaToolkit.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ namespace MaaFramework.Binding;
1212
/// </summary>
1313
public class MaaToolkit : IMaaToolkit
1414
{
15+
/// <summary>
16+
/// Gets the shared <see cref="MaaToolkit"/> instance.
17+
/// </summary>
18+
public static MaaToolkit Shared { get; } = new();
19+
1520
/// <summary>
1621
/// Creates a <see cref="MaaToolkit"/> instance.
1722
/// </summary>

src/MaaFramework.Binding.Native/MaaUtility.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@ namespace MaaFramework.Binding;
88
/// </summary>
99
public class MaaUtility : IMaaUtility
1010
{
11+
/// <summary>
12+
/// Gets the shared <see cref="MaaUtility"/> instance.
13+
/// </summary>
14+
public static MaaUtility Shared { get; } = new();
15+
1116
/// <inheritdoc/>
1217
/// <remarks>
1318
/// Wrapper of <see cref="MaaVersion"/>.

src/MaaFramework.Binding.UnitTests/Test_Buffers.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ public class Test_Buffers
2222
new MaaStringBuffer(),
2323
new MaaImageListBuffer(),
2424
new MaaStringListBuffer(),
25-
(AdbDeviceListBuffer)new MaaToolkit().AdbDevice.Find(),
25+
(AdbDeviceListBuffer)MaaToolkit.Shared.AdbDevice.Find(),
2626
#if MAA_WIN32
27-
(DesktopWindowListBuffer)new MaaToolkit().Desktop.Window.Find(),
27+
(DesktopWindowListBuffer)MaaToolkit.Shared.Desktop.Window.Find(),
2828
#endif
2929
]
3030
},

src/MaaFramework.Binding.UnitTests/Test_Common.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ private static void InitializeInfo(TestContext testContext)
2727
#if GITHUB_ACTIONS // use environment "AdbPath"
2828
AdbDeviceInfo[] devices = [];
2929
#else
30-
var devices = new MaaToolkit().AdbDevice.Find();
30+
var devices = MaaToolkit.Shared.AdbDevice.Find();
3131
#endif
3232

3333
// 请修改 TestParam.runsettings,并在测试资源管理器——设置——配置运行设置
@@ -52,8 +52,8 @@ public static void InitializeAssembly(TestContext testContext)
5252
{
5353
ArgumentNullException.ThrowIfNull(testContext);
5454

55-
_ = new MaaUtility().SetOption(GlobalOption.LogDir, DebugPath);
56-
_ = new MaaUtility().SetOption(GlobalOption.StdoutLevel, LoggingLevel.Off);
55+
_ = MaaUtility.Shared.SetOptionLogDir(DebugPath);
56+
_ = MaaUtility.Shared.SetOptionStdoutLevel(LoggingLevel.Off);
5757

5858
InitializeInfo(testContext);
5959
}

src/MaaFramework.Binding.UnitTests/Test_IMaaController.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,7 @@ public void CreateInstances()
112112

113113
#if !GITHUB_ACTIONS
114114
#region MaaWin32Controller
115-
var toolkit = new MaaToolkit();
116-
var windowInfo = toolkit.Desktop.Window.Find().First(static x
115+
var windowInfo = MaaToolkit.Shared.Desktop.Window.Find().First(static x
117116
=> x.Name.Contains("Visual Studio", StringComparison.OrdinalIgnoreCase)
118117
|| x.Name.Contains("Maa", StringComparison.OrdinalIgnoreCase));
119118

src/MaaFramework.Binding.UnitTests/Test_IMaaToolkit.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class Test_IMaaToolkit
1212
public static Dictionary<MaaTypes, object> NewData => new()
1313
{
1414
#if MAA_NATIVE
15-
{ MaaTypes.Native, new MaaToolkit() },
15+
{ MaaTypes.Native, MaaToolkit.Shared },
1616
#endif
1717
};
1818
public static Dictionary<MaaTypes, object> Data { get; private set; } = default!;

src/MaaFramework.Binding.UnitTests/Test_IMaaUtility.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public class Test_IMaaMaaUtility
1010
public static Dictionary<MaaTypes, object> NewData => new()
1111
{
1212
#if MAA_NATIVE
13-
{ MaaTypes.Native, new MaaUtility() },
13+
{ MaaTypes.Native, MaaUtility.Shared },
1414
#endif
1515
};
1616
public static Dictionary<MaaTypes, object> Data { get; private set; } = default!;

0 commit comments

Comments
 (0)