Skip to content

Commit cdfbee9

Browse files
committed
Push Build
1 parent 5bc2ee5 commit cdfbee9

8 files changed

Lines changed: 32 additions & 28 deletions

File tree

Any2GSX-Installer-latest.exe

0 Bytes
Binary file not shown.

Any2GSX/GSX/GsxController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ protected override async Task DoRun()
440440
}
441441
}
442442

443-
if (IsGsxRunning && Menu.MenuCommandsAllowed)
443+
if (IsGsxRunning && Menu.MenuCommandsAllowed && AutomationState == AutomationState.SessionStart)
444444
{
445445
Menu.ExternalSequence = true;
446446
Logger.Information($"Open GSX Menu on Startup ...");

Any2GSX/GSX/Menu/GsxMenu.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ public class GsxMenu() : IGsxMenu
5050
public virtual bool NoJetwayDetected { get; protected set; } = false;
5151
public virtual bool SettingMenuDetected { get; protected set; } = false;
5252
public virtual bool WasFollowMeAnswered { get; protected set; } = false;
53+
public virtual bool IsFollowMeCallbackActive { get; protected set; } = false;
5354
protected virtual bool WasOperatorSelected { get; set; }
5455
public virtual bool WasOperatorPreferred { get; protected set; } = false;
5556
public virtual bool WasOperatorHandlingSelected { get; protected set; } = false;
@@ -187,6 +188,7 @@ public virtual void Reset()
187188
NoJetwayDetected = false;
188189
SettingMenuDetected = false;
189190
WasFollowMeAnswered = false;
191+
IsFollowMeCallbackActive = false;
190192
OperatorCallbackActive = false;
191193
}
192194

@@ -206,6 +208,7 @@ public virtual void ResetFlight()
206208
NoJetwayDetected = false;
207209
SettingMenuDetected = false;
208210
WasFollowMeAnswered = false;
211+
IsFollowMeCallbackActive = false;
209212
OperatorCallbackActive = false;
210213
}
211214

@@ -314,13 +317,15 @@ protected virtual async Task OnFollowMeQuestion(GsxMenu menu)
314317

315318
if (Profile.RunAutomationService && Profile.SkipFollowMe && !WasFollowMeAnswered)
316319
{
320+
IsFollowMeCallbackActive = true;
317321
var sequence = new GsxMenuSequence();
318322
sequence.Commands.Add(GsxMenuCommand.Select(2, GsxConstants.MenuFollowMe, ["No"]));
319323
sequence.Commands.Add(GsxMenuCommand.Operator());
320-
sequence.ResetMenuCheck = () => WasFollowMeAnswered == false;
321-
sequence.EnableMenuAfterResetCheck = () => Profile.EnableMenuForSelection;
324+
sequence.ResetMenuCheck = () => WasFollowMeAnswered == true;
325+
sequence.EnableMenuAfterResetCheck = () => WasFollowMeAnswered == false;
322326
if (await RunSequence(sequence))
323327
WasFollowMeAnswered = true;
328+
IsFollowMeCallbackActive = false;
324329
}
325330
else if (WasFollowMeAnswered)
326331
Logger.Debug($"Skipped Follow Me Sequence");
@@ -512,7 +517,8 @@ protected virtual Task OnMenuSelection(ISimResourceSubscription sub, object valu
512517
Tracker.Track(AppNotification.GateSelect);
513518
else if (MatchTitle(GsxConstants.MenuFollowMe) && (num == 0 || num == 1))
514519
{
515-
Logger.Debug("Follow Me answered externally");
520+
if (!IsFollowMeCallbackActive)
521+
Logger.Debug("Follow Me answered externally");
516522
WasFollowMeAnswered = true;
517523
}
518524
else if (!string.IsNullOrWhiteSpace(GetMenuLine(num)))

Any2GSX/Notifications/NotificationManager.cs

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -338,31 +338,27 @@ protected virtual async Task CheckMenu()
338338
MenuOpenDelayed = DateTime.MaxValue;
339339
}
340340
}
341-
//Timeout Handling
342-
else if ((autoRefresh || deckRefresh) && isTimeout)
341+
//Keep Direction Menu open
342+
else if (autoRefresh && Profile.KeepDirectionMenuOpen && ServicePushBack.IsWaitingForDirection && ServicePushBack.State == GsxServiceState.Callable && automation == AutomationState.Pushback)
343343
{
344-
//Keep Direction Menu open
345-
if (autoRefresh && Profile.KeepDirectionMenuOpen && ServicePushBack.IsWaitingForDirection && ServicePushBack.State == GsxServiceState.Callable && automation == AutomationState.Pushback)
346-
{
347-
Logger.Debug($"Menu Refresh: Reopen Direction Menu");
348-
await ServicePushBack.Call();
349-
GsxMenu.ExternalSequence = true;
350-
await GsxMenu.WaitInterval(5);
344+
Logger.Debug($"Menu Refresh: Reopen Direction Menu");
345+
await ServicePushBack.Call();
346+
GsxMenu.ExternalSequence = true;
347+
await GsxMenu.WaitInterval(5);
351348

352-
if (GsxMenu.IsReady && GsxMenu.MatchTitle(GsxConstants.MenuPushbackInterrupt) && GsxMenu.MatchMenuLine(2, GsxConstants.MenuPushbackChange))
353-
await GsxMenu.RunCommand(GsxMenuCommand.Select(3), GsxController.IsDeiceAvail || Profile.EnableMenuForSelection);
349+
if (GsxMenu.IsReady && GsxMenu.MatchTitle(GsxConstants.MenuPushbackInterrupt) && GsxMenu.MatchMenuLine(2, GsxConstants.MenuPushbackChange))
350+
await GsxMenu.RunCommand(GsxMenuCommand.Select(3), GsxController.IsDeiceAvail || Profile.EnableMenuForSelection);
354351

355-
await GsxMenu.WaitInterval(2);
356-
GsxMenu.ExternalSequence = false;
357-
}
358-
//Deck/EFB: Open after Timeout on Gate
359-
else if (deckRefresh &&
360-
(((GsxMenu.IsGateMenu || GsxMenu.LastTitle?.StartsWith(GsxConstants.MenuGate, StringComparison.InvariantCultureIgnoreCase) == true) && (automation <= AutomationState.Departure || automation >= AutomationState.Arrival))
361-
|| (automation == AutomationState.Pushback && !ServicePushBack.IsTugConnected && !ServicePushBack.IsRunning && !ServiceDeice.IsRunning)))
362-
{
363-
Logger.Debug($"Menu Refresh: After Timeout");
364-
await GsxController.Menu.RunCommand(GsxMenuCommand.Open(), false);
365-
}
352+
await GsxMenu.WaitInterval(2);
353+
GsxMenu.ExternalSequence = false;
354+
}
355+
//Deck/EFB: Open after Timeout on Gate
356+
else if (deckRefresh && isTimeout &&
357+
(((GsxMenu.IsGateMenu || GsxMenu.LastTitle?.StartsWith(GsxConstants.MenuGate, StringComparison.InvariantCultureIgnoreCase) == true) && (automation <= AutomationState.Departure || automation >= AutomationState.Arrival))
358+
|| (automation == AutomationState.Pushback && !ServicePushBack.IsTugConnected && !ServicePushBack.IsRunning && !ServiceDeice.IsRunning)))
359+
{
360+
Logger.Debug($"Menu Refresh: After Timeout");
361+
await GsxController.Menu.RunCommand(GsxMenuCommand.Open(), false);
366362
}
367363
//Deck/EFB: Open after Selection
368364
else if (deckRefresh && noInhibit && !ServiceDeice.IsRunning && !ServicePushBack.IsTugConnected && !ServicePushBack.IsRunning)

CHANGES.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
### App
22
- Some temporary Tweaks/Fixes on the (classic) Menu Call/Handling Stuff
33
- Fixed manual Operator Selection not possible due to Menu being disabled instantly
4+
- Optimized Menu Handling on Arrival: Close/Disable Menu after (successful) Follow and Operator Selection
5+
- Optimized Keep Direction Menu Open Feature

Installer/Payload/AppPackage.zip

62 Bytes
Binary file not shown.

Installer/Payload/version.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
22
"Version": "0.4.10",
3-
"Timestamp": "2026.06.30.2113"
3+
"Timestamp": "2026.07.06.1837"
44
}

Installer/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
// Allgemeine Informationen über eine Assembly werden über die folgenden
66
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
77
// die einer Assembly zugeordnet sind.
8-
[assembly: AssemblyTitle("Any2GSX Installer v0.4.10.0 (2026.06.30.2113)")]
8+
[assembly: AssemblyTitle("Any2GSX Installer v0.4.10.0 (2026.07.06.1837)")]
99
[assembly: AssemblyDescription("Installer Application for Any2GSX")]
1010
[assembly: AssemblyConfiguration("")]
1111
[assembly: AssemblyCompany("Fragtality")]

0 commit comments

Comments
 (0)