private void UpdateSelectedVpnProtocolTypeUI(VpnProtocols.VpnType?vpnTypeToShow = null) { if (__IsVpnProtocolChanging) { return; } if (!NSThread.IsMain) { InvokeOnMainThread(() => UpdateSelectedVpnProtocolTypeUI(vpnTypeToShow)); return; } VpnProtocols.VpnType vpnType = __Settings.VpnProtocolType; if (vpnTypeToShow != null) { vpnType = (VpnProtocols.VpnType)vpnTypeToShow; } // remove OpenVPN Extra Parameters view for (int i = 0; i < Toolbar.VisibleItems.Length; i++) { if (Toolbar.VisibleItems[i] == OpenVpnViewExtraParameters) { Toolbar.RemoveItem(i); break; } } // remove all tab-items from 'VPN configurations' Tab if (GuiTabConfigOpenVPN.TabView != null) { GuiProtocolsConfigTabView.Remove(GuiTabConfigOpenVPN); } if (GuiTabConfigWireGuard.TabView != null) { GuiProtocolsConfigTabView.Remove(GuiTabConfigWireGuard); } if (vpnType == VpnProtocols.VpnType.WireGuard) { GuiBtnProtocolTypeOpenVPN.IntValue = 0; GuiBtnProtocolTypeWireGuard.IntValue = 1; GuiProtocolsConfigTabView.Add(GuiTabConfigWireGuard); } else { GuiBtnProtocolTypeOpenVPN.IntValue = 1; GuiBtnProtocolTypeWireGuard.IntValue = 0; GuiProtocolsConfigTabView.Add(GuiTabConfigOpenVPN); Toolbar.InsertItem(OpenVpnViewExtraParameters.Identifier, Toolbar.VisibleItems.Length); } }