Exemple #1
0
        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);
            }
        }